带有动态密钥名称的Json String to Java Object

我正在尝试将这个结构化的json字符串解析为Java Object,但我没有尝试过每次尝试。

{ "message": "Test Message", "status": true, "users": { "user_xy": [ { "time": "2016-08-25 19:01:20.944614158 +0300 EEST", "age": 24, "props": { "pr1": 197, "pr2": 0.75, "pr3": 0.14, "pr4": -0.97 } } ], "user_zt": [ { "time": "2016-08-25 17:08:36.920891187 +0300 EEST", "age": 29, "props": { "pr1": 1.2332131860505051, "pr2": -0.6628148829634317, "pr3": -0.11622442112006928 } } ] } } 

props字段可以包含1个属性或6个属性,它取决于db记录。 用户名部分也动态变化。

我可以用Jackson Lib成功解析这个结构化字符串吗?

你必须创建像bellow一样的calss结构来将你的字符串映射到java对象。

为Details创建一个类

 public class Details { private String message; private String status; private Map> users = new HashMap>(); public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public Map> getUsers() { return users; } public void setUsers(Map> users) { this.users = users; } } 

像bellow一样创建UserDetails类。

 public class UserDetails { private String time; private String age; private Map prop = new HashMap(); public String getTime() { return time; } public void setTime(String time) { this.time = time; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public Map getProp() { return prop; } public void setProp(Map prop) { this.prop = prop; } } 

现在,您可以使用Details类映射字符串。

希望这会有所帮助..