簡體   English   中英

解析JSON ARRAY

[英]Parsing JSON ARRAY

我正在進行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 Array卡中獲取所有信息(例如“已關閉”,“到期”,...)

例如我在做

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它將為您完成所有任務,例如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM