我有一个Java树形图,其结构如下:
public static Map<String, Map<String, Integer>> testMap = new TreeMap<String, Map<String, Integer>>();
public String getTestMapInJson(Map<String, Map<String, Integer>> testMap){
ObjectMapper mapper = new ObjectMapper();
String testMapInJson = mapper.writeValueAsString(testMap);
return testMapInJson;
}
现在,当我尝试使用Jackson API(上面的代码段)在JSON中转换此地图时,我收到这样的数据,我想在HTML表格中填充这些数据。
[
{
"key": "1.1.1.1",
"value": {
"string1": 500,
"string2": 400
}
},
{
"key": "2.2.2.2",
"value": {
"string1": 500,
"string2": 400
}
}
]
HTML表格输出如下:
IP Address Value
1.1.1.1 [object Object]
2.2.2.2 [object Object]
我想这样:
IP Address Value
1.1.1.1 String1 count1
String2 count2
2.2.2.2 String1 count1
String2 count2
内部hashmap不会完全转换为JSON格式。我想要一些东西,以便内部hashmap也像外部地图一样转换成类似的地图。 我可以在任何一方(客户端/服务器)进行更改。我该怎么办?
答案 0 :(得分:1)
var resp = [
{
"ip": "1.1.1.1",
"data": {
"string1": 500,
"string2": 400
}
},
{
"ip": "2.2.2.2",
"data": {
"string1": 500,
"string2": 400
}
}
]
访问对象:
for(var obj : resp) {
$.each(obj, function(key,value){
alert(key + "==" + value);
if(key == "data") {
$.each(value, function(innerKey, innerVal) {
alert(innerKey + "===" + innerVal);
});
}
});
}
设计表格:
var table = $("<table>");
//header
var header = $("<tr>").append($("<th>").text("IP Address")).append($("<th>").text("Value"));
for(var obj : resp) {
$.each(obj, function(key,value){
var isFirst = true;
if(key == "data") {
$.each(value, function(innerKey, innerVal) {
var tr;
if(isFirst) {
// ip address and value
tr = $("<tr>").append($("<td>").text(value)).append($("<td>").text(innerKey + " " + innerValue));
isFirst = false;
} else {
// blank and value
tr = $("<tr>").append($("<td>").text("")).append($("<td>").text(innerKey + " " + innerValue));
}
table.append(tr);
});
}
});
}