2014-08-31 75 views
0

我有一个解析到Android应用程序的JSON数据。JSON数据解析到Android应用程序

{"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"]] 
+2

你尝试了一些东西? – 2014-08-31 16:05:21

+0

在这里阅读... http://www.androidhive.info/2012/01/android-json-parsing-tutorial/ – 2014-08-31 16:11:56

+0

@Aneesh答案张贴为您接受 – 2014-08-31 16:36:54

回答

1

我觉得美是如此简单看看这个:

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(); 
    } 
+0

哇,那很容易!谢谢@ mmlooloo – Aneesh 2014-08-31 17:26:21

+0

你总是欢迎:-) – mmlooloo 2014-08-31 17:27:13

1

工作代码

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