gpt4 book ai didi

java - jackson 无法识别的字段

转载 作者:IT老高 更新时间:2023-10-28 12:47:06 24 4
gpt4 key购买 nike

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

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

我的代码抛出这样的异常:

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

而且我不想在 Test 类中添加 Prop ,我只想让 jackson 将存在的值转换为 Test 中也存在的值。

最佳答案

Jackson 提供了几种不同的机制来配置“额外”JSON 元素的处理。以下是将 ObjectMapper 配置为非 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

关于java - jackson 无法识别的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8409567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com