Java 用jackson映射JSON对象
我的javascript如下所示: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”:{ “
{
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“}}。