解析JSON ARRAY
我正在解析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");
对于复杂的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);
}
}
有些耐人寻味:
- JSONArray是一个对象。你正在使用的json处理程序如何知道它是JSONArray或列表?
-
我们可以做这样的事?:
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。
非常感谢!我会用它 – user1537092 2012-07-19 08:31:54
不客气! – 2012-07-19 08:33:06
你是什么意思“无法得到”。你有错误吗?什么错误?你使用什么代码?我假设你没有将你想要的数组转换为'String'?请显示无法使用的代码,您希望发生的事情以及实际发生的事情。 – Nanne 2012-07-19 07:38:12
感谢您的回复。我没有错误,我只是不知道如何得到这个特定的数组:“idMembers”:[ “2848f4g85t15” ], – user1537092 2012-07-19 08:03:42