Java 用jackson映射JSON对象

Java 用jackson映射JSON对象,java,javascript,json,jackson,Java,Javascript,Json,Jackson,我的javascript如下所示: { a: "This is a Test", b: { test1: "bla", test2: "blub } } 现在,我将这个对象作为stringifiesjson对象发送到我的Java后端(Jax-RS),并希望将其解析回Java对象。我用杰克逊来做这个。问题是,我不知道如何映射不同类型的对象。(字符串/映射) 有人能帮忙吗?使用json如下: { “a”:“这是一项测试” “b”:{ “

我的javascript如下所示:

{
   a: "This is a Test",
   b: {
         test1: "bla",
         test2: "blub
      }
}
现在,我将这个对象作为stringifiesjson对象发送到我的Java后端(Jax-RS),并希望将其解析回Java对象。我用杰克逊来做这个。问题是,我不知道如何映射不同类型的对象。(字符串/映射) 有人能帮忙吗?

使用json如下:

{
“a”:“这是一项测试”
“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 + "]";}
}
publicstaticvoidmain(字符串[]args)
抛出JsonParseException、JsonMappingException、IOException{
字符串json=“{\“a\”:\“这是一个测试\”,“b\”:{\“test1\”:\“bla\”,“test2\”:“blub\”}”;
System.out.println(json);
JObj obj=newObjectMapper().readValue(json,JObj.class);
系统输出打印项次(obj);
}
静态类JObj{
字符串a;
地图b;
公共字符串getA(){return a;}
public void setA(字符串a){this.a=a;}
公共映射getB(){return b;}
public void setB(Map b){this.b=b;}
@凌驾
公共字符串toString(){return“JObj[a=“+a+”,b=“+b+”];}
}

我认为您的json格式错误,错误为“应为'STRING','}'”,下面是我的json:{“a:“这是一个测试”,“b:{“test1:”bla”,“test2:”blub“}}。