如何在Java中动态添加到JSON对象中的嵌套元素?
我想要一个json对象,它相当于如何在Java中动态添加到JSON对象中的嵌套元素?,java,javascript,json,Java,Javascript,Json,我想要一个json对象,它相当于 var data = {"nodes":"var postLoadData = {\n nodes:{408868239:{'tipo':'clase','shape':'dot','label':'clase2'},843594076:{'tipo':'clase','shape':'dot','label':'ESTADIA'}},edges:{\n 2:{408868239:{},843594076:{}}}};\n \n sys.graft(postLo
var data = {"nodes":"var postLoadData = {\n nodes:{408868239:{'tipo':'clase','shape':'dot','label':'clase2'},843594076:{'tipo':'clase','shape':'dot','label':'ESTADIA'}},edges:{\n 2:{408868239:{},843594076:{}}}};\n \n sys.graft(postLoadData);"}
我是这样做的
JSONObject jsonObject = new JSONObject();
jsonObject.put("nodes", "var postLoadData = {\n nodes:{408868239:{'tipo':'clase','shape':'dot','label':'clase2'},843594076:{'tipo':'clase','shape':'dot','label':'ESTADIA'}}," +
"edges:{\n 2:{408868239:{},843594076:{}}}};\n \n sys.graft(postLoadData);");
我需要向这个json对象动态添加边和节点。如何做到这一点。您已经阅读了API,因为它定义了您将需要的操作。从我所看到的,您将需要操纵关键节点的值
我很好奇,如果你的JSON中有JS,你的JS会是什么样子。你打算给执行官打电话吗?我会非常小心你如何实施。JSON用于交换数据您试图做的是交换JS,这不是它的目的,这样做也不安全。您没有JSON,该字符串中包含的是以下javascript代码:
var postLoadData = {
nodes: {
408868239: {
'tipo': 'clase',
'shape': 'dot',
'label': 'clase2'
},
843594076: {
'tipo': 'clase',
'shape': 'dot',
'label': 'ESTADIA'
}
},
edges: {
2: {
408868239: {},
843594076: {}
}
}
};
sys.graft(postLoadData);
其中最接近的有效JSON可能是:
{
"nodes": {
"408868239": {
"tipo": "clase",
"shape": "dot",
"label": "clase2"
},
"843594076": {
"tipo": "clase",
"shape": "dot",
"label": "ESTADIA"
}
},
"edges": {
"2": {
"408868239": {},
"843594076": {}
}
}
}
您可以使用上述JSON而不是javascript代码,然后执行以下操作:
JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( theJsonString );
您想在Java或Javascript中修改JSON吗?数据对象在语法上是有效的JSON,实际上不适合动态添加任何内容。你可能想考虑重构你的格式。我读错了吗?或者你有意在一个JSON对象中放一个var声明吗?是的。我正在将其发送到java脚本。@ErikE Valid JSON是任意值-这不仅仅是object。在java脚本端,我只调用evaldata.nodes