【发布时间】:2013-11-08 21:01:25
【问题描述】:
我有一个包含三个片段的活动,我正在尝试从我的服务器中检索一个 JSON 文件,我将每天更新该文件。
我的 JSON 文件位于此处:http://pagesbyz.com/test.json
因为有片段,所以我在MainActivity类中使用了如下代码:
DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams());
HttpPost httppost = new HttpPost("http://pagesbyz.com/test.json");
// Depends on your web service
httppost.setHeader("Content-type", "application/json");
InputStream inputStream = null;
String result = null;
try {
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
inputStream = entity.getContent();
// json is UTF-8 by default
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
result = sb.toString();
Toast.makeText(getApplicationContext(), result, 2000).show();
} catch (Exception e) {
// Oops
}
finally {
try{if(inputStream != null)inputStream.close();}catch(Exception squish){}
}
我真正需要做的是在我的 JSON 文件中检索 TYPE 字段并将其分成三个选项卡,然后将其放入 ListView 中,如下所示:
我想知道,一旦我使用上面的代码阅读了 JSON 文件,我该如何继续……感谢您的帮助 :)
我应该查询每个片段然后查找 TYPE 字段吗?那会更容易吗?
很好奇为什么 Toast 没有执行...这是我的主要活动的粘贴箱:http://pastebin.com/gKTCeH79
【问题讨论】:
-
谢谢。哪个更容易使用,有没有我可以使用的文档?
-
不客气。 org.json 可在 Android 中访问,无需任何外部依赖。杰克逊是我个人最喜欢的简单性和性能,但它有点主观。所有框架都有很好的文档记录。
-
我也想知道为什么 Toast 没有执行?
-
@SiKn8 乍一看可能是因为在调用
Toast之前抛出了Exception。由于您的catch语句什么都不做,结果将是finally语句中发生的任何事情。
标签: java android json android-fragments