0

我正在处理 json 解析,但遇到了问题。这是我的 JSON:

"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");
4

1 回答 1

0

对于复杂的 json 对象,例如给定的对象,我强烈推荐gson它将为您完成所有任务。例如:

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

现在,地图包含您需要的所有东西,因此遍历地图获取 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 并为自己节省很多痛苦。对于复杂的 pojo,您可以使用ObjectMapper

于 2012-07-19T08:27:37.027 回答