从PHP返回的JSON提取数据遇JSONException问题求助
解决JSON数据提取的JSONException问题
嘿,我看到你在提取PHP返回的JSON数据时遇到了JSONException,问题根源在于你没注意到JSON的嵌套结构!
先看你拿到的JSON内容:
{"success":1,"message":"Data of the Person", "0":{"Name":"Marco","Surname":"Rossi","Age":"32"}}
你需要的Name、Surname、Age字段并不是直接在顶层JSON对象里,而是嵌套在键为"0"的子JSON对象中。你直接从顶层jObj调用getString("Name"),自然找不到对应的键,所以抛出了异常。
修正后的提取步骤
- 先从顶层对象获取
success字段(这部分你原来的代码是对的); - 提取键为
"0"的子JSON对象; - 从这个子对象里获取你需要的用户信息字段。
修正后的代码片段
// 假设jObj是已解析完成的顶层JSONObject success = jObj.getString("success"); // 先获取嵌套的用户对象 JSONObject userData = jObj.getJSONObject("0"); // 从子对象中提取字段 UserNm = userData.getString("Name"); UserSrm = userData.getString("Surname"); UserAge = userData.getString("Age");
额外注意事项
- 注意JSON里的键
"0"是字符串类型,所以必须用getJSONObject("0"),不能用整数索引的getJSONObject(0); - 如果后续PHP返回的是多个用户的数组(比如
"data": [{"Name": "...", ...}, ...]),那你需要改用JSONArray来处理,但当前场景下单个嵌套对象用JSONObject就足够了。
内容的提问来源于stack exchange,提问作者Andrea
相关产品推荐
相关产品推荐

