我正在开发一个 RESTful 应用,其中响应作为JSON字符串从Extjs传递到java,所以我使用jackson反序列化到java POJO。
以下是我的要求:
{
"filter": "[{"type":"string","value":"sdadsadsa","field":"groupName"}]",
"limit": 10
}
FilterParams类如下所示:
class FilterParams {
@JsonProperty( value = "type" )
private String type;
/** The value. */
@JsonProperty( value = "value" )
private String value;
/** The group name. */
@JsonProperty( value = "field" )
private String field;
}
使用以下代码转换为pojo am
mapper.readValue(json, FilterParams.Class);
但仍然得到“无法反序列化FilterParams的实例”。如何将其转换为pojo。
非常感谢任何帮助。感谢。
答案 0 :(得分:1)
filter
是JSON数组,则"
的值不应该以{{1}}开头,如果是"
,则应该已经转义为内部String
。FilterParams
课程根本不反映您的JSON中的数据:它应该具有limit
int
属性以及array
或Collection
Filter
s Filter
课程type
,value
和field
属性答案 1 :(得分:1)
您的JSON包含2个元素:filter&限制,以便Jackson无法将此JSON字符串与FilterParams对象匹配。
要忽略处理限制的JSON部分,请执行以下操作:
JsonNode tree = mapper.readTree(<JSON_STRING>);
FilterParams fp = mapper.treeToValue(tree.get("filter"), FilterParams.class);