错误转换json

时间:2013-06-05 00:54:33

标签: android json

我需要帮助转换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");

1 个答案:

答案 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);
...