JSON,JAXB,JSON 休息
JSON, JAXB,JSON Rest
我创建了一个 Rest 服务,它在 XML 请求中工作正常(Rest 服务输入 JAXB 生成 class )。当我尝试发送 Json 请求时,它抛出异常。
SEVERE: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
org.codehaus.jackson.map.JsonMappingException: Can not instantiate value of type [simple type, class Transaction] from JSON String; no single-String constructor/factory method (through reference chain:
class Transaction which is inner class .
我的请求 class 是使用 JAXB 从模式生成的,我的 getter 方法如下所示,但没有 setter 方法。
public List<Transaction> getORIG() {
if (origtrans == null) {
origtrans = new ArrayList<Transaction>();
}
return this.origtrans;
}
下面是我的Json请求
{
"LOB_CD": "42424"
"ORIGINALTRANSACTION" : [
"LOGON_ID" : "TEST"
]
}
当我添加原始交易时,它会抛出一个错误,否则它工作正常。
你能帮我解决这个问题吗?
提前致谢。
首先确保您使用的是有效的 JSON,例如:
{
"LOB_CD": "42424",
"ORIGINALTRANSACTION": {
"LOGON_ID": "TEST"
}
}
此外,如果您能向我们展示 交易 class.
,那就太好了
有效。
我做了以下步骤
1)添加了一个空的构造函数
2) 为列表添加了此注释
@JsonDeserialize(as=ArrayList.class, contentAs=Transaction.class)
3) 将 Json 对象更改为
{ "LOB_CD": "42424" "ORIGINALTRANSACTION" : [ { "LOGON_ID" : "TEST" } ] }
非常感谢,
帕特尔
我创建了一个 Rest 服务,它在 XML 请求中工作正常(Rest 服务输入 JAXB 生成 class )。当我尝试发送 Json 请求时,它抛出异常。
SEVERE: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
org.codehaus.jackson.map.JsonMappingException: Can not instantiate value of type [simple type, class Transaction] from JSON String; no single-String constructor/factory method (through reference chain:
class Transaction which is inner class .
我的请求 class 是使用 JAXB 从模式生成的,我的 getter 方法如下所示,但没有 setter 方法。
public List<Transaction> getORIG() {
if (origtrans == null) {
origtrans = new ArrayList<Transaction>();
}
return this.origtrans;
}
下面是我的Json请求
{
"LOB_CD": "42424"
"ORIGINALTRANSACTION" : [
"LOGON_ID" : "TEST"
]
}
当我添加原始交易时,它会抛出一个错误,否则它工作正常。
你能帮我解决这个问题吗? 提前致谢。
首先确保您使用的是有效的 JSON,例如:
{
"LOB_CD": "42424",
"ORIGINALTRANSACTION": {
"LOGON_ID": "TEST"
}
}
此外,如果您能向我们展示 交易 class.
,那就太好了有效。 我做了以下步骤 1)添加了一个空的构造函数 2) 为列表添加了此注释
@JsonDeserialize(as=ArrayList.class, contentAs=Transaction.class)
3) 将 Json 对象更改为
{ "LOB_CD": "42424" "ORIGINALTRANSACTION" : [ { "LOGON_ID" : "TEST" } ] }
非常感谢, 帕特尔