2012-07-19 59 views
0

我正在解析json,並且遇到了問題。 這是我的JSON:解析JSON ARRAY

"cards":[ 
{ 
"id":"bgyr6gh5yr6154", 
"checkItemStates":[ 
], 
"closed":false, 
"desc":"", 
"due":"2012-06-13T10:00:00.000Z", 
"idBoard":"4v454g5r1515", 
"idChecklists":[ 
], 
"idList":"16562562526", 
"idMembers":[ 
"2848f4g85t15" 
], 
"idShort":15, 
"labels":[ 
], 

我可以在JSON陣列卡的所有信息(例如, 「關閉」, 「因」,...)

我這樣做,例如,

JSONArray msg2 = (JSONArray) all.get("cards"); 

然後

String boardId = (String) monobjet.get("closed"); 

,它工作正常!

但是

我不知道如何獲得「idMembers」! 任何想法,因爲它是數組中的數組?

JSONArray msg2 = (JSONArray) all.get("cards"); 

然後

for (int i2 = 0; i2 < size2; i2++) { 
        myobject = (JSONObject) msg2.get(i2); 

        listTemp2.add(jsonObecjtToMyData(myobject)); 
       } 


String boardName = (String) monobjet.get("name"); 
+3

你是什麼意思「無法得到」。你有錯誤嗎?什麼錯誤?你使用什麼代碼?我假設你沒有將你想要的數組轉換爲'String'?請顯示無法使用的代碼,您希望發生的事情以及實際發生的事情。 – Nanne 2012-07-19 07:38:12

+0

感謝您的回覆。我沒有錯誤,我只是不知道如何得到這個特定的數組:「idMembers」:[ 「2848f4g85t15」 ], – user1537092 2012-07-19 08:03:42

回答

0

對於複雜的JSON對象,如給予,我會強烈建議gson一個將完成所有的任務you.For例如:

Gson gson = new GsonBuilder().setPrettyPrinting().create(); 
Map map = gson.fromJson(inputField.getText(),Map.class); 

現在,映射conatains所有你需要的東西,所以迭代通過地圖得到idMembers把它放在一個列表中,而你把它的類型轉換爲字符串或任何適合的數據類型。

你可以單獨的類型轉換而不是數組。因此,這將編譯和運行:

public class MainApp { 
    public Object obj[]={"foo","loo"}; 
    public Object obj2 = "soo"; 
    public static void main(String[] args) { 
     MainApp mainApp = new MainApp(); 
     String name = (String) mainApp.obj2; 
     System.out.println(name); 
    } 
} 

有些耐人尋味:

  1. JSONArray是一個對象。你正在使用的json處理程序如何知道它是JSONArray或列表?
  2. 我們可以做這樣的事?:

    public class MainApp { 
        public Object obj[]={"foo","loo"}; 
        public static void main(String[] args) { 
         MainApp mainApp = new MainApp(); 
         String name[] = (String[])mainApp.obj; 
         for(String str : name){ 
          System.out.println(str); 
         } 
        }} 
    

請使用GSON並保存自己很多pain.Also爲複雜的POJO可以使用ObjectMapper

+0

非常感謝!我會用它 – user1537092 2012-07-19 08:31:54

+0

不客氣! – 2012-07-19 08:33:06