Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中动态添加到JSON对象中的嵌套元素?_Java_Javascript_Json - Fatal编程技术网

如何在Java中动态添加到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

我想要一个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对象动态添加边和节点。如何做到这一点。

您已经阅读了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