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" } ] }

非常感谢, 帕特尔