繁体   English   中英

ClassCastException将字符串解析为JSONArray

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM