2012-04-15 8 views
2

저는 Jackson을 사용하여 구문 분석하려고하는 json을 가지고 있습니다. JSON 모양 -동적 json 구문 분석

coupons: { 
    1: { 
    title: "Mode von", 
    description: "", 
    type: "offer", 
    code: "-", 
    expiry: "0000-00-00", 
    link: "" 
    },  
    2: { 
    title: "Prime 1", 
    description: "", 
    type: "offer", 
    code: "-", 
    expiry: "0000-00-00", 
    link: "http://test.com/" 
    } 
} 

쿠폰의 수는 응답에서 응답까지 다양합니다. 내 딜레마는 이러한 객체를 보유 할 수있는 해당 Java 클래스를 만드는 것입니다. 항상 내가 널 얻을

System.out.println(coupons.getCoupons().get("type")); 
System.out.println(coupons.getCoupons().get("code")); 

-

public class Coupons { 
    Map<String, String>coupons = new HashMap<String, String>(); 
    public Map<String, String> getCoupons() { 
     return coupons; 
    } 
} 

그러나 -

나는대로지도에 노력했다. 이 json에 적합한 Java 클래스는 무엇입니까?

답변

2

첫 번째 수준의 키는 인덱스 번호 1, 2, 3 등입니다. 그래서 형식과 코드를 얻으려면 키를 구체화해야합니다.

당신이 할 수 있습니다 :이 도움이

var coupons = coupons.getCoupons(); //<--breakpoint to see if this is really populated. 
foreach(String key in coupons.Keys){ //<- pseudo code, iterate over keys 
    var obj = coupons.get(key); 
    var type = obj.get("type"); 
    etc.. 
} 

희망 당신은

+0

에 이동 내가 생각하는 내가 할 수있는 그냥 할 - '지도 <문자열, 문자열> 쿠폰 = 새의 HashMap <문자열, 문자열> ();'coupons.getCoupons()'는 어떤지도 객체도 가져 오지 않는다. – Tarun

+0

좋아,지도를 'private Map 쿠폰 = 새로운 HashMap >();'그러나 해결책의 핵심은 제안한대로지도 키의 핵심을 얻는 것이 었습니다. – Tarun