我想要一个等同于
的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(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对象。怎么做。
答案 0 :(得分:0)
您是否阅读了JSONObject的API,它定义了您需要的操作。从我所看到的,您将需要操纵键nodes
的值。
我很想知道如果你的JSON中有JS,你的JS会是什么样子。你打算打电话给exec
吗?你如何实施我会非常小心。 JSON用于交换数据,你要做的就是交换JS,这不是它的目的,也不安全。
答案 1 :(得分:0)
你没有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 );