簡體   English   中英

JSON數據解析到Android App

[英]JSON data parsing to Android App

我有一個解析為Android應用程序的JSON數據。

{"tag":"Login","tdata":[{"ID":[["C1","C2"]],"Name":[["ABC","PQR"]]}]}

我想在單獨的字符串變量中提取數據C1,C2,ABC,PQR。 我該怎么做?

當我嘗試以下代碼時:

JSONObject json=data.getJsonArray(0);
JSONArray id=json.getJSONArray("ID");
System.out.println(id);

這是輸出:

[["C1","C2"]]

工作代碼

package com.test;

import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;

public class Test{

    public static void main(String[] args) {
        String s = "{\"tag\":\"Login\",\"tdata\":[{\"ID\":[[\"C1\",\"C2\"]],\"Name\":[[\"ABC\",\"PQR\"]]}]}";
        System.out.println("=>" + s);

        JSONObject json;
        try {
            json = new JSONObject(s);
            JSONArray jsonArray = json.getJSONArray("tdata");
            for (int i = 0 ; i < jsonArray.length() ; i++) {
                JSONObject another_json_object = (JSONObject) jsonArray.get(i);

                JSONArray jsonArray1 = another_json_object.getJSONArray("ID");
                for (int j = 0 ; j < jsonArray1.length() ; j++) {
                    JSONArray jsonArray11 = (JSONArray) jsonArray1.get(j);

                    for (int j1 = 0 ; j1 < jsonArray11.length() ; j1++) {
                        System.out.println(jsonArray11.get(j1));
                    }
                }

                JSONArray jsonArray2 = another_json_object.getJSONArray("Name");
                for (int k = 0 ; k < jsonArray2.length() ; k++) {
                    JSONArray jsonArray21 = (JSONArray) jsonArray2.get(k);
                    for (int k1 = 0 ; k1 < jsonArray21.length() ; k1++) {
                        System.out.println(jsonArray21.get(k1));
                    }
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

    }
}

輸出=>

=>{"tag":"Login","tdata":[{"ID":[["C1","C2"]],"Name":[["ABC","PQR"]]}]}
C1
C2
ABC
PQR

我認為美是簡單的,所以請看以下內容:

String str = "{\"tag\":\"Login\",\"tdata\":[{\"ID\":[[\"C1\",\"C2\"]],\"Name\":[[\"ABC\",\"PQR\"]]}]}";
    System.out.println(str);
    JSONObject all;
    try {
        all = new JSONObject(str);
        JSONArray data =  all.getJSONArray("tdata");              //data = [{"ID":[["C1","C2"]],"Name":[["ABC","PQR"]]}]
        JSONObject insideData=data.getJSONObject(0);              // insideData = {"ID":[["C1","C2"]],"Name":[["ABC","PQR"]]}
        JSONArray C1C2OutterArray=insideData.getJSONArray("ID");  // C1C2OutterArray = [["C1","C2"]]
        JSONArray C1C2InnerArray=C1C2OutterArray.getJSONArray(0); // C1C2InnerArray = ["C1","C2"]   
        String C1 = C1C2InnerArray.getString(0);                  // C1 = C1
        String C2 = C1C2InnerArray.getString(1);                  // C2 = C2

        JSONArray nameOutterArray=insideData.getJSONArray("Name");// nameOutterArray = [["ABC","PQR"]]
        JSONArray nameInnerArray=nameOutterArray.getJSONArray(0); // nameInnerArray = ["ABC","PQR"] 
        String ABC = nameInnerArray.getString(0);                 // ABC = ABC
        String PQR = nameInnerArray.getString(1);                 // PQR = PQR

    } catch (JSONException e) {  

        e.printStackTrace();
    }

您需要的是更好地理解Java的JsonObject Api: http : //examples.javacodegeeks.com/core-java/json/java-json-parser-example/

暫無
暫無

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

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