这是在端点/ foo / bar之外的响应主体。
如您所见,这是嵌套的json
,因此对于每个级别,我需要Java object
。构建这个的有效方法是什么?我正在使用Spring 4.1
,而Jackson
又使用serialize
到{
"user": {
"status": {
"state": "active",
"message": [
"registered on 01.10.2015"
]
}
},
"features": {
"xbox": {
"state": "enabled",
"message": [
"foo",
"bar"
]
},
"playstation": {
"state": "disabled",
"message": [
"hello ",
"world"
]
}
}
}
POJO。
@RequestMapping("foo/bar")
@ResponseBody
public Result getData(long id){
Result result = getUserData(id);
return result;
}
public class Result {
private User user;
private List<Feature> features;
//getters and setters
}
public class Status {
private State state;
private Message messages;
//getters and setteers
}
public class State {
private String state;
//getters and setters
}
public class Message {
private List<String> messages;
//getters and setters
}
这是我想到的事情
objectMapper
对于“features”节点,我将为每个级别的Json对象构造Java POJO。我知道使用JsonNode
和var createSeriesData = function(){
seriesData = [];
JSON_obj = JSON.parse('[{"CreatedDate":1314736440,"Reading":20.0},{"CreatedDate":1314779640,"Reading":7.9}]');
for(var key in JSON_obj){
if(JSON_obj.hasOwnProperty(key)){
seriesData[key] = [];
seriesData[key].push(JSON_obj[key].CreatedDate.toString());
seriesData[key].push(JSON_obj[key].Reading.toString());
}
}
console.log(seriesData);
}
,但想知道是否可以使用java对象有效地构造嵌套的json。
答案 0 :(得分:0)
像State
这样的类可能是一个枚举,如果您确定只会有一个有限的值域。并且Message
不应该是一个单独的类 - 只需将List<String> message
直接嵌入Status
。
如果您想要更紧凑的表示,您可以随时提供自己的序列化器/反序列化器类来自定义转换。