0

从 Web 服务检索 JSON 并解析它的最简单方法是什么?不使用任何额外的插件?

4

4 回答 4

2

这是检索 JSON 数据并对其进行解析的最佳方式,我已经在我的项目中使用过它,并且效果很好。查看本教程(也提供源代码)。如果你使用 JSON,你肯定需要谷歌 gson 库来将 Java 对象转换为它们的 JSON 表示。你可以从这里下载。

于 2012-05-27T09:40:49.257 回答
0

下面的代码应该为您提供一个起点,只需在活动/服务类中使用它。它从 URL(Web 服务)获取数据,并将其转换为您可以使用的 JSON 对象。

StringBuilder stringBuilder =  new  StringBuilder();
HttpClient client =  new  DefaultHttpClient();
HttpGet httpGet = new  HttpGet(***Put your web service URL here ***)
try
{
    HttpResponse response = client.execute(httpGet);
    StatusLine statusLine = response.getStatusLine();
    int  statusCode = statusLine.getStatusCode();
    if (statusCode == 200)
    {
        HttpEntity entity = response.getEntity();
        InputStream content = entity.getContent();
        BufferedReader reader = new  BufferedReader(
        new  InputStreamReader(content));
        String line;
        while ((line = reader.readLine()) != null)
        {
           stringBuilder.append(line);
        }
     }
} 
catch (ClientProtocolException e)
{
    e.printStackTrace();
}
catch (IOException e)
{
     e.printStackTrace();
}

//Turn string JSON into object you can process
JSONArray jsonArray = new JSONArray(stringBuilder.toString());
for  (int  i = 0; i < jsonArray.length(); i++)
{
     //Get Each element
     JSONObject jsonObject = jsonArray.getJSONObject(i); 
     //Do stuff
}
于 2012-05-25T20:38:22.793 回答
0

如果您想要标准程序,那么您需要使用JSONObjectJSONArray解析响应。但是,当您的响应字符串包含复杂的结构时,它会变得模糊和繁琐。为了处理如此复杂的响应,最好关闭对GsonJackson或任何其他库的解析。

于 2012-05-25T20:12:05.323 回答
0

你应该看看这里:http ://code.google.com/p/android-query/wiki/AsyncAPI

一切都解释了,你需要的代码示例。

于 2012-05-25T20:14:05.893 回答