org.json解析报错JSONObject["response_json"] is not a JSONObject原因方案问询
报错原因
- 原始返回结果中
response_json字段是JSON序列化字符串,而非嵌套JSON对象:你提供的JSON结构里,response_json的值整体被双引号包裹,内部双引号做了转义处理,属于字符串类型,直接调用getJSONObject()获取对象会触发类型不匹配异常。
解决方法
先按字符串类型提取response_json的内容,再将该字符串二次解析为JSONObject即可,修改后参考代码如下:
System.out.println("postResponse :"+postResponse); JSONObject responseJson = new JSONObject(postResponse); // 第一步:取出字符串类型的response_json内容 String responseJsonStr = responseJson.getString("response_json"); // 第二步:将字符串二次解析为JSONObject JSONObject jsonObjectA = new JSONObject(responseJsonStr); JSONObject jsonObjectB = jsonObjectA.getJSONObject("data"); // 可直接调用getString方法获取字符串类型的id,无需手动转toString String the_pdf_id = jsonObjectB.getString("id");
内容的提问来源于stack exchange,提问作者Teddybugs
相关产品推荐
相关产品推荐

