在我的Android客户端中,我想从服务器接收JSON对象。通过谷歌搜索,我发现了很多不同的可能性,如何从服务器中最好地解析InputStream,但大多数人都编写了自己的解析器。是不是有一个库为我解析这个?或者我应该如何最好地自己实施呢?
答案 0 :(得分:9)
答案 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中正常工作。