java - jackson 解码问题

标签 java json jackson rest-assured

我正在尝试使用 Jackson 2 和 RestAssured(用于 IT 测试的 java 工具)来反序列化 JSON 字符串。

我有一个问题。我试图反序列化的字符串是:

{"Medium":{"uuid":"2","estimatedWaitTime":0,"status":"OPEN_AVAILABLE","name":"Chat","type":"CHAT"}}

字符串开头有对象类型“Medium”。这导致 jackson 在反序列化期间失败:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "Medium"

我已将“IGNORE_ON_UNKNOWN_PROPERTIES”设置为 false,然后在反序列化过程中没有出现异常。但是,我的所有属性在 java 中都是“null”。

Response getAvailability -> {"Medium":{"uuid":"2","estimatedWaitTime":0,"status":"OPEN_AVAILABLE","name":"Chat","type":"CHAT"}}
@@@ MEDIUM name -> null
@@@ MEDIUM uuid -> null
@@@ MEDIUM wait time -> null
@@@ MEDIUM wait time -> null
@@@ MEDIUM status -> null

有人可以帮助我吗? (注意:我无法更改输入的 JSON 字符串)。

最佳答案

{
    "Medium": {
        "uuid": "2",
        "estimatedWaitTime": 0,
        "status": "OPEN_AVAILABLE",
        "name": "Chat",
        "type": "CHAT"
    }
}

如您所见,uuid 和其他参数是中型对象的一部分,因此可以反序列化的类也是。

class Medium
{ 
   string name;
   // specify other params also.
}

class BaseObject
{ 
  Medium Medium;
}

然后使用jackson.deserialize('json', BaseObject.class)

上面我给出了伪代码

关于java - jackson 解码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35222488/

相关文章:

java - 跨多个进程均匀分布数据库记录

java - 分配数组然后使用构造函数

java - mysql同一行不同列引用。(ifnull检查)

python - 尝试在加载此文件时实现缓存

java - 带列表字段的 ACCEPT_EMPTY_STRING_AS_NULL_OBJECT

java - 卡夫卡流 : Implement a simple KeyValueStore where I can put and get data

java - 如何解析以下 JSON 数组?

python - Postgres Convert column jsonb in another table 其中列是键

java - 使用 Jackson 将 Map 转换为 JsonParser

spring - @JsonIgnore 和 @JsonIgnoreProperties 有什么区别