簡體   English   中英

如何使用Jackson編寫嵌套的JSON?

[英]How to write nested JSON using Jackson?

目前我正在嘗試通過Java代碼自動化JSON API。我已經成功運行了JSON而沒有嵌套。現在在我們的API中,有嵌套的JSON,我需要通過POJO自動化...我該怎么做...

一個API適用於我,它有單個參數。

API的JSON

{
    "userId": 1

  },

JAVA類吧。

   public class Post {

        @JsonProperty("userId")
        private String userId;          
        public String getUserId()
        {
           return userId;
        }

        public void setUserId(String userId) 
        {       
            this.userId = userId;   
        }

 }

現在我有一個API,它有多個嵌套參數..如何創建相同的Java類?

嵌套的JSON

{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
                    "SortAs": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Acronym": "SGML",
                    "Abbrev": "ISO 8879:1986",
                    "GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": ["GML", "XML"]
                    },
                    "GlossSee": "markup"
                }
            }
        }
    }
}

我怎么能為此編寫Java類?

提前致謝!

使用link將你的json轉換為java類,只需將你的json粘貼到這里下載類結構。

您可以使用訪問嵌套的json字段。 (點)運算符

例如:如果您想要從GlossEntry獲取訪問ID使用以下代碼

  ObjectMapper mapper = new ObjectMapper();
  String jsonString="";
  Glossary_ sc=mapper.readValue(jsonString,Glossary_.class);

System.out.println("ID:"+sc.getGlossDiv().getGlossList().getGlossEntry().getID());

您需要使用Java類復制JSON結構。 在你的情況下,它應該是這樣的:

public class Glossary {
       String title;
       GlossDiv glossDiv;
       {getters, setters}
}

public class GlossDiv {
       String title;
       GlossList glossList;

       public getGlossList() {
             return glossList;
       }

       public setGlossList(GlossList glossList) {
             this.glossList = glossList;
       }
}

依此類推,對於每個嵌套對象。

暫無
暫無

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

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