gpt4 book ai didi

java - ClassCastException 将字符串解析为 JSONArray

转载 作者:行者123 更新时间:2023-11-29 03:13:48 25 4
gpt4 key购买 nike

我有一个 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){

}

关于java - ClassCastException 将字符串解析为 JSONArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27789525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com