gpt4 book ai didi

java - jackson 在反序列化时抛出 JsonMappingException;需要单字符串构造函数?

转载 作者:搜寻专家 更新时间:2023-10-30 21:14:41 24 4
gpt4 key购买 nike

另一个问题,但它与这个问题有关: Deserializing JSON with Jackson - Why JsonMappingException "No suitable constructor"?

这次我遇到了一个不同的错误,即 Jackson 反序列化器提示我的类 ProtocolContainer 中没有“单字符串构造函数/工厂方法”。

但是,如果我添加一个单字符串构造函数,如下所示:

public ProtocolContainer(String json) {}

异常确实消失了,但是我期望的 ProtocolContainer 都是“空的”,即它的所有属性都处于初始状态,而不是根据 JSON 字符串填充.

这是为什么?

我很确定您不需要单字符串构造函数,如果这样做,您就不必在该构造函数中填充属性,对吧?

=)

最佳答案

哦,所以在我发布这个问题之后我又一次找到了答案(尽管我在发布之前尝试了很多东西)。

我为解决这个问题所做的是使用 @JsonCreator 注释。我简单地注释了我的静态 Create 方法,如下所示:

@JsonCreator
public static ProtocolContainer Create(String jsonString)
{

ProtocolContainer pc = null;
try {
pc = mapper.readValue(jsonString, ProtocolContainer.class);
} catch (JsonParseException|JsonMappingException|IOException e) {
// handle
}

return pc;
}

然后问题就解决了。

关于java - jackson 在反序列化时抛出 JsonMappingException;需要单字符串构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8369260/

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