我需要创建一些没有属性名称的 JSON
输出。这是要发送到浏览器中的 DataTables ( datatables.net),DataTables 需要这样的 JSON
:
{
"aaData": [
[
"Trident",
"Internet Explorer 4.0",
"Win 95+",
"4",
"X"
],
[
"Trident",
"Internet Explorer 5.0",
"Win 95+",
"5",
"C"
]
]
}
(样本来自 here。向下滚动到“服务器响应”。)
因为我的数据不是来自已知类,所以我通过在内存中创建树然后调用 rootNode.toString() 来写入数据:
public String jsonTest()
{
final JsonNodeFactory nodeFactory = JsonNodeFactory.instance;
ObjectNode rootNode = nodeFactory.objectNode();
ArrayNode arrayNode = nodeFactory.arrayNode();
rootNode.put("aaData", arrayNode);
for (int i = 0; i < 3; i++) {
ObjectNode dataNode = nodeFactory.objectNode();
arrayNode.add(dataNode);
dataNode.put("field1", "Trident");
dataNode.put("field2", "Internet Explorer 4.0");
dataNode.put("field3", "Win 95+");
dataNode.put("field4", "4");
dataNode.put("field5", "X");
}
return rootNode.toString();
}
这会产生:
{
"aaData": [
{
"field1": "Trident",
"field2": "Internet Explorer 4.0",
"field3": "Win 95+",
"field4": "4",
"field5": "X"
},
{
"field1": "Trident",
"field2": "Internet Explorer 4.0",
"field3": "Win 95+",
"field4": "4",
"field5": "X"
},
{
"field1": "Trident",
"field2": "Internet Explorer 4.0",
"field3": "Win 95+",
"field4": "4",
"field5": "X"
}
]
}
我的问题:如何完全抑制“field1”、“field2”等,以便获得 json 数据表(如上所示)?
最佳答案
您是否应该创建数组节点而不是对象节点?
public String jsonTest()
{
final JsonNodeFactory nodeFactory = JsonNodeFactory.instance;
ObjectNode rootNode = nodeFactory.objectNode();
ArrayNode arrayNode = nodeFactory.arrayNode();
rootNode.put("aaData", arrayNode);
for (int i = 0; i < 3; i++) {
ArrayNode dataNode = nodeFactory.arrayNode();
arrayNode.add(dataNode);
dataNode.add("Trident");
dataNode.add("Internet Explorer 4.0");
dataNode.add("Win 95+");
dataNode.add("4");
dataNode.add("X");
}
return rootNode.toString();
}
关于java - 如何写入没有属性名称的 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22365677/