gpt4 book ai didi

java - Android Jackson 映射异常

转载 作者:太空宇宙 更新时间:2023-11-04 11:23:05 25 4
gpt4 key购买 nike

我正在调用 API,因此我能够获得 Json 响应。在此 json 中,我有一个参数例如 manufacturer,其中我期望有一个 Manufacturer 类型的对象(我的自定义类),但有时我从相同的命名参数获取 String 到 API 中,因此,我能够得到以下异常:

com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class com.response.Manufacturer] from String value ('59438a9f2e4ab8c26656fcfd'); no single-String constructor/factory.

我得到的 Api 响应如下:

{"manufacturer" : "59438a9f2e4ab8c26656fcfd"}

有时这个回应就像

{"manufacturer" : {"name":"Manufacturer Name"}}

我的制造商类就像

class Manufacturer {
@JsonProperty("name")
private String name;
// getter and setter for this with @JsonProperty("name");
}

我在谷歌上搜索了很多,但找不到任何解决方案。请帮助我摆脱这个困境。

最佳答案

您可以在 Manufacturer 中放置一个带有 String 参数的构造函数,当 Jackson 在 JSON 中看到字符串字段并且必须在 Java 类中创建 Manufacturer 字段时,将使用该构造函数:

class Manufacturer {
Manufacturer(String id) {
this.name = // initialize as you see fit
}

Manufacturer() {} // compiler no longer creates this

关于java - Android Jackson 映射异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44694401/

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