0

我需要帮助转换 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:Java.lang.String 类型的 UserListByBusinessAreaContextResult 中的值 {"tableData":[{"UserID":30,"Username":"Teste","Name":"Teste"}]} 无法转换到 JSONArray

日志说错误在这一行:

mainJson22.getJSONArray("UserListByBusinessAreaContextResult");
4

1 回答 1

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);
...
于 2013-06-05T01:02:14.533 回答