杰克逊无法识别的字段 [英] jackson Unrecognized field

查看:105
本文介绍了杰克逊无法识别的字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用jackson将JSON转换为Object类.

I use jackson for converting JSON to Object class.

JSON:

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

对象类:

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

代码:

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

我不想在Test类上添加道具,我只是想让jackson转换Test中也存在的存在值.

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提供了几种不同的机制来配置对额外" JSON元素的处理.以下是将ObjectMapper设置为非FAIL_ON_UNKNOWN_PROPERTIES的示例.

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;
}

有关其他方法,请参见> http://wiki.fasterxml.com/JacksonHowToIgnoreUnknown

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

这篇关于杰克逊无法识别的字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆