当我试图将JSON字符串转换为JSONObject时,我遇到了以下错误。
“在类型为java.lang.String的位置上的值<48.466667 | 9.883333>无法转换为JSONObject。”
该字符串是有效的JSON,我用http://jsonlint.com/进行了测试。
示例: {"name":"An der Decke","location":"48.412583|10.0385","type":"Virtual","size":null,"status":"Available","difficulty":1,"rating":null,"terrain":1}
产生异常的代码如下:
“在类型为java.lang.String的位置上的值<48.466667 | 9.883333>无法转换为JSONObject。”
该字符串是有效的JSON,我用http://jsonlint.com/进行了测试。
示例: {"name":"An der Decke","location":"48.412583|10.0385","type":"Virtual","size":null,"status":"Available","difficulty":1,"rating":null,"terrain":1}
产生异常的代码如下:
jsonObject = new JSONObject(result);
jsonArray = new JSONArray();
Iterator<String> iter = jsonObject.keys();
while (iter.hasNext()) {
String key = iter.next();
try {
JSONObject value = (JSONObject) jsonObject.get(key); <---- Exception
jsonArray.put(value);
} catch (JSONException e) {
// Something went wrong!
}
}
在Java JSON中,管道符号“|”是否不是有效字符?
编辑:
问题在于,如果JSON字符串不包括"location":"48.412583|10.0385"部分,它可以正常工作...
getJSONObject()
的示例。 - Ravi K Thapliyal