我在android中为1.6构建了一个JSON使用者(认为在最旧版本的基础上构建最大支持是一种很好的做法)。我能够在1.5-1.6下成功检索json。然而,我只是把我的机器人(2.x)上的应用程序扔了,现在我收到了“org.json.jsonexception:字符值的预期文字值......”。为什么版本不同?我怎么处理这个?
答案 0 :(得分:0)
如果您无法使用该库,请尝试GSON,这很棒
答案 1 :(得分:0)
我有一个方法将InputStream转换为JSON的字符串表示形式。我需要将子字符串从(intial,length() - 1)调整为(initial,length() - 2)以使其在1.5和2.x中都起作用。谢谢你的帮助。
private static String convertStreamToString(InputStream is) {
/*
* To convert the InputStream to String we use the BufferedReader.readLine()
* method. We iterate until the BufferedReader returns null which means
* there's no more data to read. Each line will appended to a StringBuilder
* and returned as String.
*/
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// API is defective and does not return correct json response.
// Reformat string response to confirm to expected json response
// return sb.toString();
return "{\"Results\":" + sb.substring(11, sb.length()-2) + "}\n" ;
}
答案 2 :(得分:0)
我有同样的错误消息。在我的情况下,事实证明JSON lib是混乱的,因为返回的JSON
引用了(“)。这显然混淆了字符串的长度,并导致了异常。