我正在尝试使用对象映射器将json字符串转换为对象类,但它始终返回UnrecognizedPropertyException
这是返回json字符串
{“错误代码”:400,“消息”:“ ORA-01403:未找到数据\ nORA-06512:位于\“ CSS_HPG.SELFCARE_LAY_DS_GOITRATRUOC \”,第12行\ nORA-06512:位于第1行“,”数据“: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
答案 0 :(得分:0)
UnrecognizedPropertyException
是因为Message
不是公认的属性。
没有注释,字段的默认名称以小写字母开头,例如message
,但您的JSON文本具有Message
,这是一个不同的名称(因为它们区分大小写)。
要使用非默认属性名称,请添加@JsonProperty
批注:
@JsonProperty("Message")
public List<String> getMessage() {
@JsonProperty("Data")
public PackageSearchOutputData getData() {
一旦这样做,很可能会遇到Message
是String
的问题,而您的班级将其定义为List<String>
,这样可能会失败。您可能需要将Message
字段及其获取和设置器从List<String>
更改为String
。