android json解析错误-无法将JSONArray转换为JSONObject

西瓦K

我将xml内容转换为JSON内容,内容如下

{
    "response":
    {
        "seatlist":
        {
            "seat":
            {
                "balance":85694.6,"num":12
            },
            "seat":
            {
                "balance":85694.6,"num":12
            }
        },
        "userid":"8970ca285d9c4e4d",
        "seatnum":12,
        "session":"online"
    }
}

我可以通过以下方式获取userid和seatnum

JSONObject response = json.getJSONObject("response");
            out.setUserid(response.getString("userid"));
            out.setBalance(Double.valueOf(response.getString("balance")));

现在的问题是我需要解析以下内容,并需要获取“ num”值

"seatlist":
        {
            "seat":
            {
                "balance":85694.6,"num":12
            },
            "seat":
            {
                "balance":85694.6,"num":12
            }
        }

这是我正在使用的代码

JSONObject objList = response.getJSONObject(“ seatlist”);
字符串n = String.valueOf(objList.getJSONObject(“ seat”));
if(objList.getJSONObject(“ seat”)。get(“ userId”)。equals(userId)){字符串num = String.valueOf(objList.getJSONObject(“ seat”)。get(“ num”)); out.setSeatNum(Integer.valueOf(num)); }

如果我有一个席位值,我可以获取“ num”值,否则我将获取JSON异常

请给我一个建议.....

伊曼纽尔S
{
"response":
{
    "seatlist":
    {
        "seat":
        {
            "balance":85694.6,"num":12
        },
        "seat":
        {
            "balance":85694.6,"num":12
        }
    },
    "userid":"8970ca285d9c4e4d",
    "seatnum":12,
    "session":"online"
}
}

表示具有称为响应的对象的对象。其中包含一个名为Seatlist的对象。它包含2个称为seat的对象(但这是错误的!应该是一个数组!)。等等..

阅读此内容,您可以使用

JSONObject json = new JSONObject(yourresponse);
JSONObject response = json.getJSONObject("response");

JSONObject seatlist = response.getJSONObject("seatlist");
JSONObject userid = response.getJSONObject("userid");
JSONObject seatnum = response.getJSONObject("seatnum");
JSONObject session = response.getJSONObject("session");

现在座位列表中包含。

   {
    "seat":
    {
        "balance":85694.6,"num":12
    },
    "seat":
    {
        "balance":85694.6,"num":12
    }
}

这是错误的,因为它包含2个具有相同名称的元素。现在,您可以按如下所示通过索引来调用它:

 JSONObject seat1 = seatlist.getJSONObject(1);
 JSONObject seat2 = seatlist.getJSONObject(2);


 seat1.getString("balanace"); seat1.getInt("num");

或者您可以遍历JSONObject。

至少它应该是一个数组而不是JSONOBject。

这意味着它应该看起来像这样。

{
"response": {
"seatlist": [
    "seat":
    {
        "balance":85694.6,"num":12
    },
    "seat":
    {
        "balance":85694.6,"num":12
    }
],
"userid":"8970ca285d9c4e4d",
"seatnum":12,
"session":"online"
} 
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android JSON解析“无法将org.json.JSONObject类型的数据转换为JSONArray”错误

在Android中解析JSON响应“无法将org.json.JSONObject类型的响应转换为JSONArray”

类型 org.json.JSONObject 无法转换为 JSONArray Android

android org.json.JSONArray无法转换为JSONObject吗?

Android JSON解析错误无法转换为JSONArray

Android Studio 错误:org.json.JSONObject 无法转换为 JSONArray

我无法解析为什么在我的android项目中解析JSON(如“ JSONObject无法转换为JSONArray”)时显示异常

用于JSON解析的Android模型显示ClassCastException:com.google.gson.JsonObject无法转换为com.google.gson.JsonArray

Android Studio:类型 org.json.JSONArray 无法转换为 JSONObject

org.json.JSONObject无法在我的android项目上转换为JSONArray

(Android Volley)JSONObject无法转换为JSONArray

JSONObject无法转换为JSONArray(Android)

JSONObject无法转换为JSONArray(Android)

JSONObject无法转换为JSONArray-Android

麻烦的JsonObject解析无法转换为jsonarray

jsonarray无法转换为jsonobject logcat错误

错误类型 JSONArray 无法转换为 JSONObject

Android Jsonarray无法转换为json对象

Json解析gorg.json.JSONObject无法转换为JSONArray

jsonobject无法转换为jsonarray嵌套jsonarray android

解析 JSON - JSONObject 类型的 null 无法转换为 JSONArray

JSON解析错误:类型org.json.JSONArray无法转换为JSONObject

错误:类型 org.json.JSONArray 无法转换为 JSONObject

错误org.json.JSONObject无法转换为JSONArray

无法将类型为java.lang.String的Android片段JSON <!DOCTYPE转换为JSONArray

“无法将org.json.simple.JSONArray强制转换为org.json.simple.JSONObject”

org.json.JSONException:无法将 org.json.JSONArray 类型的 0 值转换为 JSONObject

org.json.JSONException:无法将 org.json.JSONArray 类型的值 [{}] 转换为 JSONObject

Android:将 JSONObject 转换为 JSONArray 返回 null