簡體   English   中英

將json對象轉換為多個數組

[英]Convert json object into multiple arrays android

我有一個從服務器下載的json對象,它以以下格式返回結果:

{"Bookname":["Alive-O","All Write Now ","Bun Go Barr 1","Planet Maths","Small World"],"SubjectName":["Religion","English","Irish","Maths","Science"]}

我想要做的是將其轉換為兩個不同的數組,以在android設備上使用。

這是我的asynctask中的請求和尋找響應

        String[] BookName;
        String[] BookSubject;
        try {
            post.setEntity(new UrlEncodedFormEntity(dataToSend));
            HttpResponse httpResponse = client.execute(post);

            HttpEntity entity = httpResponse.getEntity();
            String result = EntityUtils.toString(entity);
            JSONObject jObject = new JSONObject(result);


        } 

只是想知道如何將上述結果存儲在兩個數組中?

假設您選擇JSONObject ,那么您的JSON是該異常結構,並且您希望在Java中鏡像該結構:

步驟#1:在getJSONArray()jObject()兩次,以獲取兩個JSONArray對象( BooknameSubjectName

步驟#2:將每個String[]分配為適當的長度(在JSONArray上調用length()

步驟#3:對於每個JSONArray ,遍歷數組索引(從0到length() ),並為每個索引調用getString() ,將其分配給關聯的String[]的適當索引

就像這樣

    JSONObject jsonObject = new JSONObject(result);

    // for getting booknames
    JSONArray jsonArray = jsonObject.getJSONArray("Bookname");
    bookName = new String[jsonArray.length()]
    for (int i = 0; i < jsonArray.length(); i++) {
        bookName[i] = jsonArray.getString(i);
    }

    // for getting subjectnames
    jsonArray = jsonObject.getJSONArray("SubjectName");
    bookSubject = new String[jsonArray.length()]
    for (int i = 0; i < jsonArray.length(); i++) {
        bookSubject[i] = jsonArray.getString(i);
    }

希望對您有幫助。

暫無
暫無

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

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