簡體   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