将 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
.
我正在尝试使用对象映射器将 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
.