簡體   English   中英

在Android中解析JSON數組

[英]parse json array in android

我需要幫助...我有一個php文件,該文件返回了兩個json數組,如下所示:

[{ "id":"1",
   "item":"hammers",
   "aisle":"20"
 }
 { "id":"1",
   "item":"hammers",
   "aisle":"20"
 }]

[{ "id":"1",
   "itemFound":"Your item #item",
   "ThankYou":"and Thank You for using Txtcore!"
 }]

現在,我想在Android中獲得第二個數組項。 我現在有以下代碼,如下所示:JSONArray jsonArray = new JSONArray(result);

         for (int   i = 0; i < jsonArray.length(); i++) {
              JSONObject jsonObject = jsonArray.getJSONObject(i);       
            items.add(jsonObject.getString("item"));
            aisles.add(""+jsonObject.getString("item");

         }

但是顯然,這使我從第一個數組返回了對象。 我想從第二個數組中獲取對象。 有什么建議么。

您的JSON無效,但是您可以按以下方式獲取元素。 這是很多人的解決方案(只是一個麻煩)。

String str = "YOUR_JSON_RESPONSE";
String array[] = str.split("\\[\\{");// 
try {
     JSONArray jsonArray=new JSONArray("[{" + array[2]));
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

我猜您將不得不做一些骯臟的編碼,因為PHP頁面返回的數據格式不正確的JSON。 您可以嘗試將JSON數據轉換為: { "data" : [ <array_1>, <array_2> ]}然后使用JSON解析器。 用正則表達式簡單替換就可以了。

  result.replaceAll("\\]\\s*\\[", "], [");
  StringBuffer buffer=new StringBuffer(result);
  buffer.insert(0,"{ \"data\": ");
  buffer.append(" }");
  JSONObject jsonObject = new JSONObject(buffer.toString());
  JSONArray secondArray= jsonObject.getJSONArray("data").getJSONArray(1);

可以使用適當的regexp在一個步驟中完成有效JSON字符串的創建。 希望有更多時間的人可以在這里發布。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM