YET*_*ETI 5 dictionary jackson
对象类:
class User{
public String name;
public String password;
}
Run Code Online (Sandbox Code Playgroud)
JSON:
{ sc:"200", msg:"something", userInfo:{name:"n", password:"p"} }
Run Code Online (Sandbox Code Playgroud)
我想得到这样的结果:
Map->contains 3 key-value
"sc"="200"
"msg"="something"
"userInfo"=User(Object Class)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?或者,我如何才能使用其他JAR工具包?
您必须选择是否需要"无类型"(地图,列表,包装),这很容易获得:
Map<String,Object> map = new ObjectMapper().readValue(json, Map.class);
Run Code Online (Sandbox Code Playgroud)
或POJO.问题是,mapper确实无法知道你想要"userInfo"映射到特定对象,而是将其他值映射到其他东西.
但我宁愿只创建另一个类,如:
public class Request {
public int sc;
public String message;
public User userInfo;
// and/or getters, setters, if you prefer
}
Run Code Online (Sandbox Code Playgroud)
并绑定到:
Request req = new ObjectMapper().readValue(json, Request.class);
Run Code Online (Sandbox Code Playgroud)
当你有真正的POJO时,为什么要搞乱不方便的地图呢?:)
归档时间: |
|
查看次数: |
8374 次 |
最近记录: |