当前位置: 代码迷 >> JavaScript >> jackson json 变换Bean, Bean 里没有对应的值 jackson Unrecognized field
  详细解决方案

jackson json 变换Bean, Bean 里没有对应的值 jackson Unrecognized field

热度:8302   发布时间:2013-02-26 00:00:00.0
jackson json 转换Bean, Bean 里没有对应的值 jackson Unrecognized field

转载自:http://blog.csdn.net/a9529lty/article/details/8232948

I use jackson for converting JSON to Object class.

JSON:

{ "aaa":"111", "bbb":"222", "ccc":"333" }

Object Class:

class Test{    public String aaa;    public String bbb;}

Code:

ObjectMapper mapper = new ObjectMapper();Object obj = mapper.readValue(content, valueType);

My code throws exception like that: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "cccc" (Class com.isoftstone.banggo.net.result.GetGoodsInfoResult), not marked as ignorable

And I don't want to add a prop to class Test,I just want jackson convert the exist value whith is also exist in Test.

??? Jackson provides a few different mechanisms to configure handling of "extra" JSON elements.? Following is an example of configuring the ObjectMapper to not FAIL_ON_UNKNOWN_PROPERTIES.

import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;import org.codehaus.jackson.annotate.JsonMethod;import org.codehaus.jackson.map.DeserializationConfig;import org.codehaus.jackson.map.ObjectMapper;public class JacksonFoo{  public static void main(String[] args) throws Exception  {    // { "aaa":"111", "bbb":"222", "ccc":"333" }    String jsonInput = "{ \"aaa\":\"111\", \"bbb\":\"222\", \"ccc\":\"333\" }";    ObjectMapper mapper = new ObjectMapper().setVisibility(JsonMethod.FIELD, Visibility.ANY);    mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);    Test test = mapper.readValue(jsonInput, Test.class);  }}class Test{  String aaa;  String bbb;}

?

?

?

?

For other approaches, see http://wiki.fasterxml.com/JacksonHowToIgnoreUnknown

  相关解决方案