我有以下 JSON
{"DistributorDealerList":
{[{"Id":2,
"Name":"Distributor1",
"Dealer":
[{"Id":"1",
"Name":"Dealer1"},
{"Id":"2","
Name":"Dealer2"}]},
{"Id":4,"Name":"Distributor2",
"Dealer":
[{"Id":"3",
"Name":"Dealer3"}]}]}
当我解析 JSON 时出现以下异常
org.json.JSONException: Names must be strings, but [{"Name":"Distributor1",
"Dealer":[{"Name":"Dealer1","Id":"1"},{"Name":"Dealer2","Id":"2"}],"Id":2},
{"Name":"Distributor2","Dealer":[{"Name":"Dealer3","Id":"3"}],"Id":4}] is of
type org.json.JSONArray at character 195 of {"DistributorDealerList":
{[{"Id":2,"Name":"Distributor1","Dealer":[{"Id":"1","Name":"Dealer1"},
{"Id":"2","Name":"Dealer2"}]},{"Id":4,"Name":"Distributor2","Dealer":
[{"Id":"3","Name":"Dealer3"}]}]}
这是我的解析代码:
try {
JSONObject jsonObj = new JSONObject(apiResult);
// Getting JSON Array node
JSONArray contacts = jsonObj
.getJSONArray("DistributorDealerList");
// looping through All Contacts
for (int i = 0; i < contacts.length(); i++) {
JSONObject c = contacts.getJSONObject(i);
String distId = c.getString("Id");
String distName = c.getString("Name");
JSONObject phone = c.getJSONObject("Dealer");
String distDealerID = phone.getString("Id");
String distDealerName = phone.getString("Name");
}
} catch (JSONException e) {
e.printStackTrace();
}
它说我必须提供 JSON Araay 名称。虽然我提供它,但仍然是例外。这里有什么问题。