2017-04-04 37 views
2

目前我正試圖通過Java代碼自動化JSON API ..我已經成功運行JSON而沒有嵌套..現在在我們的API中,嵌套了JSON,我需要通過POJO自動執行...我該怎麼做..如何使用Jackson編寫嵌套的JSON?

一個API爲我工作,它有單參數。

JSON爲API

{ 
    "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類呢?

在此先感謝!

回答

7

使用link將您的json轉換爲java類,只需將您的json粘貼到此處即可下載類結構。

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

例如:如果你下面的代碼

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

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

此鏈接工作。謝謝! – mashkurm

2

您需要使用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; 
     } 
} 

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

+0

能否請您寫getter和setter方法只有1類(?說Glossay)..我懷疑想獲得IDGlossEntry使用關於如何爲GlossList類寫getters和setter? – mashkurm

+0

非常感謝..做了我的一天..最後一個問題..如何處理「GlossSeeAlso」:[「GML」,「XML」]它有[]括號? – mashkurm

+0

您可以將該字段定義爲字符串列表或任何您想要存儲的字段。 – Headake