猿问

解析json时,字符串“ jo”有什么问题?

我有json字符串:


String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"jo\"}]}}";


JSONObject users = new JSONObject(response);

JSONArray sub = users.getJSONArray("first");

但是在JSONArray子我有错误:


org.json.JSON.typeMismatch上的org.json.JSONException


但是如果我有:


String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"other\"}]}}";


JSONObject users = new JSONObject(response);

JSONArray sub = users.getJSONArray("first");

它没有任何错误。


为什么用字符串"jo"我有一个错误?


幕布斯6054654
浏览 176回答 3
3回答

繁花不似锦

首先不是JSONArray,而是JSONObject。因此将其强制转换为JSONObject,然后从中获取1。您将获得JSONArray。以下是两个json字符串的工作示例:      String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"jo\"}]}}";    //String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"other\"}]}}";    JSONObject users;    try {        users = new JSONObject(jsonString);        users=users.getJSONObject("first");        JSONArray sub = users.getJSONArray("1");        System.out.println(sub.get(0));    } catch (JSONException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }输出:{“ name”:“ jo”,“ id”:1}

海绵宝宝撒

您的json字符串是错误的。没有啦JsonArray像这样更改字符串:String jsonString = "{\"first\":[{\"id\":1,\"name\":\"name1\"},{\"id\":2,\"name\":\"name2\"}]}";JSONObject users = new JSONObject(jsonString);JSONArray sub = users.getJSONArray("first");for (int i = 0; i < sub.length(); i++) {&nbsp; &nbsp; JSONObject user = sub.getJSONObject(i);&nbsp; &nbsp; String userID = user.gatInt("id");&nbsp; &nbsp; String userName = user.gatString("name");}

慕运维8079593

您确定由于将字符串更改为“ jo”而收到此类错误,因为这对我来说似乎不是问题。我已经对您的代码进行了一些修改,并且工作正常:String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"jo\"}]}}";JSONObject users = JSON.parse(jsonString);&nbsp;JSONArray sub = users.first;
随时随地看视频慕课网APP

相关分类

Java
我要回答