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

Map json to object with multiple "" in java

我正在尝试使用对象映射器将 json 字符串转换为对象 class,但它保持 return UnrecognizedPropertyException

这里是 return 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}

这是我的 class

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 不是可识别的 属性.

没有注释,字段的默认名称以小写字母开头,例如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.