我需要帮助转换json。
这是我的代码:
try {
JSONObject mainJson22 = new JSONObject(reply);
JSONArray jsonArray22 = mainJson22.getJSONArray("UserListByBusinessAreaContextResult");
Log.i("mainjson234","" + jsonArray22);
for (int i2 = 0; i2 < jsonArray22.length(); i2++) {
JSONObject objJson22 = jsonArray22.getJSONObject(i2);
// JSONArray innerJsonArray = jsonArray.getJSONArray(i);
// JSONObject objJson = innerJsonArray.getJSONObject(0);
int id22 = objJson22.getInt("UserID");
String username22 =objJson22.getString("Username");
String name = objJson22.getString("Name");
reply = {"UserListByBusinessAreaContextResult":"{\"tableData\":[{\"UserID\":30,\"Username\":\"Teste\",\"Name\":\"Teste\"}]}"}
和日志:
org.json.JSONException:Value {“tableData”:[{“UserID”:30,“用户名”:“Teste”,“名称”:“Teste”}}} at 不能是java.lang.String类型的UserListByBusinessAreaContextResult 转换为JSONArray
日志说错误在这一行:
mainJson22.getJSONArray("UserListByBusinessAreaContextResult");
答案 0 :(得分:1)
UserListByBusinessAreaContextResult
不是数组。这是一个JSONObject。
tableData是你的JSONArray。所以你必须:
try {
JSONObject mainJson22 = new JSONObject(reply);
JSONArray jsonResult = mainJson22.getJSONObject("UserListByBusinessAreaContextResult");
JSONArray jsonArray22 = jsonResult.getJSONArray("tableData");
Log.i("mainjson234","" + jsonArray22);
for (int i2 = 0; i2 < jsonArray22.length(); i2++) {
JSONObject objJson22 = jsonArray22.getJSONObject(i2);
...