2017-04-04 1 views
2

현재 Java 코드를 통해 JSON API를 자동화하려고합니다. 중첩하지 않고 JSON을 성공적으로 실행했습니다. 이제 API에 중첩 된 JSON이 있습니다. POJO를 통해 자동화해야합니다 ... 어떻게 할 수 있습니까? ..Jackson을 사용하여 중첩 JSON을 작성하는 방법은 무엇입니까?

단일 매개 변수가있는 하나의 API가 나를 위해 작동했습니다. 이 API 그것을 위해

{ 
    "userId": 1 

    }, 

자바 클래스에 대한

JSON.

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" 
       } 
      } 
     } 
    } 
} 

어떻게이 자바 클래스를 작성 할 수 있습니까?

미리 감사드립니다.

답변

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

는 만 1 클래스 (? 말은 Glossay가) .. 내가 의심에 대한 getter와 setter를 적어주세요 수있는 코드를 다음 GlossEntry 사용에 액세스를 ID를 원하는 경우 GlossList 클래스에 getter 및 setter를 작성하는 방법은 무엇입니까? – mashkurm

+0

고마워 .. 내 하루를 .. 마지막 질문 하나 .. "GlossSeeAlso": [ "GML", "XML"] [bracket]을 사용하고 계신가요? – mashkurm

+0

해당 필드를 문자열 목록이나 저장하려는 항목으로 정의 할 수 있습니다. – Headake