gpt4 book ai didi

java - java中将json映射到具有多个 ""的对象

转载 作者:行者123 更新时间:2023-12-02 01:32:09 26 4
gpt4 key购买 nike

我尝试使用对象映射器将 json 字符串转换为对象类,但它不断返回 UnrecognizedPropertyException

这里是返回的json字符串

{"errorCode":400,"Message":"ORA-01403: no data found\nORA-06512: at \"CSS_HPG.SELFCARE_LAY_DS_GOITRATRUOC\", line 12\nORA-06512: at line 1","Data":null}

这是我的课

import java.util.ArrayList;
import java.util.List;

/**
*
* @author Autumn
*/
public class PackageSearchOutput {

int errorCode;
List<String> Message;
PackageSearchOutputData Data;

public PackageSearchOutput(int errorCode, List<String> Message,
PackageSearchOutputData Data) {
this.errorCode = errorCode;
this.Message = Message;
this.Data = Data;
}


public PackageSearchOutput() {
}

public List<String> getMessage() {
return Message;
}

public void setMessage(ArrayList<String> Message) {
this.Message = Message;
}

public int getErrorCode() {
return errorCode;
}

public void setErrorCode(int errorCode) {
this.errorCode = errorCode;
}



public PackageSearchOutputData getData() {
return Data;
}

public void setData(PackageSearchOutputData Data) {
this.Data = Data;
}

}

这是我的映射代码

result = mapper.readValue(output.toString(), PackageSearchOutput.class);

这里是详细错误 click to see

最佳答案

UnrecognizedPropertyException是因为Message不是公认的属性(property)。

如果没有注释,字段的默认名称以小写字母开头,例如message ,但是您的 JSON 文本有 Message ,这是一个不同的名称(因为它们区分大小写)。

要使用非默认属性名称,请添加 @JsonProperty注释:

@JsonProperty("Message")
public List<String> getMessage() {
@JsonProperty("Data")
public PackageSearchOutputData getData() {

一旦您这样做,您可能会遇到 Message 的问题是 String ,而您的类(class)将其定义为 List<String> ,因此可能会失败。您可能需要更改 Message字段及其 getter 和 setter 来自 List<String>String .

关于java - java中将json映射到具有多个 ""的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57549737/

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