[英]ClassCastException Parsing string to JSONArray
我有一个类似JSON字符串的字符串,从REST应用返回到Android应用:
"{ \"error\" : false , \"volume\" : 1000 }"
然后,我尝试解析以下响应(不是确切的函数,而是引起麻烦的确切代码):
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
public void jsonFunction(String result){
JSONArray jsonArr = (JSONArray) new JSONParser().parse(result);
JSONObject json = (JSONObject) jsonArr.get(0);
}
但是,每次尝试解析JSON字符串时,都会出现以下错误:
java.lang.String cannot be cast to org.json.simple.JSONArray
java.lang.ClassCastException: java.lang.String cannot be cast to org.json.simple.JSONArray
我使用了相同的代码来解析来自同一程序中另一个REST应用程序的JSON响应,但是执行起来没有任何麻烦。 如果我尝试直接解析为JSONObject,则会收到非常相似的错误消息。 我认为一定有我看不见的东西,但是对于我的一生,我似乎还无法确定它是什么。
编辑:
这就是我尝试直接解析为JSON对象的方法:
java.lang.String cannot be cast to org.json.simple.JSONObject
java.lang.ClassCastException: java.lang.String cannot be cast to org.json.simple.JSONObject
您的json响应不是数组,这就是您需要做的所有事情。
import org.json.JSONException;
import org.json.JSONObject;
try {
JSONObject obj = new JSONObject(result);
boolean error = obj.getBoolean("error");
int volume = obj.getInt("volume");
} catch (JSONException e){
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.