2013-06-05 88 views
0

我需要幫助轉換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:值 { 「資料表」:[{ 「用戶名」:30, 「用戶名」 : 「泰斯特」, 「名稱」: 「泰斯特」}]}在 UserListByBusinessAreaContextResult java.lang.String類型不能 轉換爲JSONArray

日誌說,錯誤是在這一行:

mainJson22.getJSONArray("UserListByBusinessAreaContextResult"); 
+0

你需要更新你的標題,以反映你無法將字符串轉換爲JSON數組。 – kgdesouz

+0

異常是正確的 - 這是一個對象,而不是一個數組。請閱讀JSON以及它的結構。 –

回答

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