簡體   English   中英

解析具有多個數組的Json對象並添加到列表

[英]Parsing Json object with multiple array and add to a list

我從服務器獲取它作為Web響應,我想解析它並將其添加到列表中

{
    "Id": [
        "7",
        "8",
        "9"
    ],
    "Title": [
        "Title 1",
        "Title 2",
        "Title 3"
    ],
    "Description": [
        "desc1",
        "desc2",
        "desc3"
    ],
    "NewsUpdatedDateTime": [
        "2010-02-26T10:40:30",
        "2010-02-27T10:40:30",
        "2010-02-28T10:40:30"
    ],
    "ImageUrl": [
        "image1.jpg",
        "image2.jpg",
        "image3.jpg"
    ],
    "LastUpdatedTime": "2010-02-28T10:40:30",
    "ResponseMessage": "Data retrieved successfully",
    "ResponseCode": "1"
}

按照進行JSON解析...

我為您的JSON數據創建了示例代碼。檢查並讓我知道它是否有效?

String jsonData = your_data;
ArrayList<String> mListID;
ArrayList<String> mListTitle;

try {
JSONObject jsonOBJ = new JSONObject(jsonData);

// Getting JSON Array node
JSONArray mArrayID  =  jsonObj.getJSONArray("ID");
mListID = new ArrayList<String>();

for(int i=0 ; i<mArrayId.length(); i++)
{
    mListID.add(mArrayId.get(i))
}
JSONArray mArrayTitle  =  jsonObj.getJSONArray("Title");
mListTitle = new ArrayList<String>();
for(int j=0 ; j<mArrayTitle.length(); j++)
{
    mListTitle.add(mArrayTitle.get(j))
}
} catch (JSONException e) {
   e.printStackTrace();
}

嘗試這個:

  //your json String
  String jsonStr;

  if (jsonStr != null) {
        try {
        JSONObject jsonObj = new JSONObject(jsonStr);

        // Getting JSON Array node
        JSONArray data  =  jsonObj.getJSONArray("ID");

        } catch (JSONException e) {
           e.printStackTrace();
        }
  }

您應該從此處此處此處閱讀有關android中json解析的一些教程和文檔。

  You can implement it like this :



    List id;
    List title;
    String jsonTxt = inputStream;
    JSONObject jsonObj = new JSONObject(jsonTxt);
    JSONArray jsonArray1 = jsonObj.optJSONArray("Id");
    JSONArray jsonArray2 = jsonObj.optJSONArray("Title");
    if (jsonArray1.length() > 0) {
    id=new ArrayList();
    for (int index = 0; index < jsonArray1.length(); index++) {
    JSONObject sellerObj = jsonArray1.optJSONObject(index);
    id.add(sellerObj.optString("name"));//name of ids 
    }
   }

saee作為Title或其他數組。

首先,您解析服務器響應

json jsonResponse = new json(response);

JSONArray id[] = jsonResponse.getJSONArray("Id");

JSONArray title = jsonResponse.getJSONArray("Title");

JSONArray description[] = jsonResponse.getJSONArray("Description");

JSONArray newsUpdatedDateTime[] = jsonResponse.getJSONArray("NewsUpdatedDateTime");

JSONArray imageUrl[] = jsonResponse.getJSONArray("ImageUrl");

String lastUpdateTime =  jsonResponse.getString("LastUpdatedTime");

String responseMessage =  jsonResponse.getString("ResponseMessage");

String responseCode =  jsonResponse.getString("ResponseCode");

// ================================================ ===== //

然后,您可以解析剩下的單個數組:

    for (int i = 0; i < id.length(); i++) {  // **line 2**
     String name = id.get(i);
    }

我認為這會有所幫助。

暫無
暫無

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

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