2014-04-23 86 views
0

我的JavaScript看起來像這樣:映射一個JSON對象與傑克遜

{ 
    a: "This is a Test", 
    b: { 
     test1: "bla", 
     test2: "blub 
     } 
} 

現在我把這個對象stringifies JSON對象到我的Java後端(JAX-RS)和要分析它放回Java對象。我爲此使用了傑克遜。問題是,我不知道如何映射其中有不同類型的對象。 (String/Map) 任何人都可以幫忙嗎?

+0

我想你的JSON格式是錯的錯誤 「期待 'STRING', '}'」,這裏是我的json:{「a」:「這是一個測試」,「b」:{「test1」:「bla」,「test2」:「blub」}} –

回答

1

使用JSON這樣的: { "a": "This is a Test"," "b": { "test1": "bla", "test2": "blub" } }

你可以試試這個下面的代碼:

public static void main(String[] args) 
     throws JsonParseException, JsonMappingException,IOException { 
    String json = "{\"a\": \"This is a Test\",\"b\": {\"test1\": \"bla\",\"test2\": \"blub\"}}"; 
    System.out.println(json); 
    JObj obj = new ObjectMapper().readValue(json, JObj.class); 
    System.out.println(obj); 
} 

static class JObj { 
    String    a; 
    Map<String, String> b; 
    public String getA() {return a;} 
    public void setA(String a) {this.a = a;} 
    public Map<String, String> getB() {return b;} 
    public void setB(Map<String, String> b) {this.b = b;} 
    @Override 
    public String toString() {return "JObj [a=" + a + ", b=" + b + "]";} 
} 
+0

真棒。謝謝 – Christian