[英]how to deserialize string value to List using jackson
有一个 json 这样的文本
{"name":"g1","users":"[{\"name\":\"u1\",\"id\":1},{\"name\":\"u2\",\"id\":2}]"}
如何将此文本反序列化为 object? 我的结构 class 是这样的
static class User {
private String name;
private Long id;
}
static class Group {
private String name;
private List<User> users;
}
但是如何将文本反序列化为 object
ObjectMapper objectMapper = new ObjectMapper();
Group group = objectMapper.readValue(s, Group.class);
我正在尝试像这样导入 JsonDeserializer。
public class RawJsonDeserializer<T> extends JsonDeserializer<T> implements ContextualDeserializer {
private final JavaType type;
public RawJsonDeserializer() {
this.type = SimpleType.constructUnsafe(Object.class);
}
public RawJsonDeserializer(JavaType type) {
this.type = type;
}
@Override
public JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property) throws JsonMappingException {
System.out.println(property.getType());
return new RawJsonDeserializer<>(property.getType());
}
@Override
public T deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
return ((ObjectMapper) p.getCodec()).readValue(p.getText(), type);
}
}
我把它应用在我的财产上
@JsonDeserialize(using = RawJsonDeserializer.class, contentAs = WaybillItem.class) @JsonProperty("responseItems")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.