在Java和Java中解析客户端上的JSON对象的最佳实践Android的

时间:2010-08-25 20:29:27

标签: java android json

在我的Android客户端中,我想从服务器接收JSON对象。通过谷歌搜索,我发现了很多不同的可能性,如何从服务器中最好地解析InputStream,但大多数人都编写了自己的解析器。是不是有一个库为我解析这个?或者我应该如何最好地自己实施呢?

5 个答案:

答案 0 :(得分:9)

你在开玩笑吗? Java平台上有十几个JSON解析器,大多数在Android上运行良好(参见http://json.org/)。两个最常推荐的选择是JacksonGson,两者都可以很好地工作,不仅可以解析和编写JSON,还可以将JSON数据直接与POJO绑定。

答案 1 :(得分:3)

您可以使用内置的JSONTokener。该链接中有一个示例显示如何使用它。

以字符串形式获取响应:

InputStream stream = httpResponse.getEntity().getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(stream));
StringBuilder sb = new StringBuilder();
String line = null;

while ((line = br.readLine()) != null) {
  sb.append(line + "\n");
}

br.close();
String result = sb.toString();

答案 2 :(得分:2)

 private static String convertStreamToString(InputStream is) {

        BufferedReader reader = new BufferedReader(new InputStreamReader(is));

        StringBuilder sb = new StringBuilder();

        String line = null;

        try {

            while ((line = reader.readLine()) != null) {

                sb.append(line);

            }

        } catch (IOException e) {

            e.printStackTrace();

        } finally {

            try {

                is.close();

            } catch (IOException e) {

                e.printStackTrace();

            }

        }

        return sb.toString();

    }

你可以通过这段代码解析json的输入......希望这对你有用

答案 3 :(得分:0)

SDK中的Wiktionary示例将内容作为InputStream获取,将其转换为String,然后构造一个新的org.json.JSONObject(String)来解析结果。

答案 4 :(得分:-2)

从Java 7开始, 内置 Sun Oracle Java发行版中的任何软件包都没有用于解析JSON;对于Android至少有org.json,但显然有些开发人员不喜欢它。

当然,有很多第三方选择。

我有一个非常轻量级的JSON解析器,您可以使用它来解析HTTP内容流。它完全免费,使用风险等等。详细信息并在我的website下载。它应该可以在Android VM中正常工作。