2017-04-04 104 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