2012-07-19 134 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