Javascript 使用下划线更新嵌套的json数据

Javascript 使用下划线更新嵌套的json数据,javascript,jquery,underscore.js,Javascript,Jquery,Underscore.js,我有一个json,看起来是这样的: { "itemsList": [{ "id": 187994, "contentName": "Content", "contentItems": [{ "name": "nested 1", "description": "<p>nested 1</p>\n" }, { "name": "ne

我有一个json,看起来是这样的:

{
    "itemsList": [{
        "id": 187994,
        "contentName": "Content",
        "contentItems": [{
            "name": "nested 1",
            "description": "<p>nested 1</p>\n"
        }, {
            "name": "nested 2 ",
            "description": "<p>nested 2</p>\n"
        }]
    }]
}
请告诉我如何将更新后的值传递给现有contentItems,而不清除对象中的其余数据

这是我用来创建数据的小提琴:


谢谢

。这有帮助吗?在要添加的示例中,我希望更新嵌套json对象的当前值。请更新问题以仅包含相关代码。如果你更新了一些东西,旧的价值就会被新的价值所取代。不清楚你想要什么。您能提供一个输入和输出示例吗?在更新当前数据的同时,我不知道如何保留旧数据,而只是将新值推送到contentItems对象
$("#editResourceItemForm").submit(function (e) {
            e.preventDefault();

            $.getJSON(appDirLocation + "public/_data/resource_data.json", function (jsonData) {

                console.log(jsonData.itemsList.contentItem);

                //var contentItems = jsonData.itemsList.contentItems;
                var resourceId = $("#editResourceItemForm input#resourceId").val(); // resource id
                var updatedContentName = $("#appData").data("content-name");
                var updatedContentItem = {
                                name: $("#editResourceItemForm input#contentItemName").val(),
                                description: CKEDITOR.instances.contentItemDescription.getData()
                };

                resourceId = Number(resourceId); // input filed is collected as string needs to make number

                _.each(jsonData.itemsList, function (item) {
                    if (item.id === resourceId) {
                        item.contentName = updatedContentName;
                        item.contentItems = updatedContentItem ;
                        // queue here new items to update 
                    }
                }); // used underscore.js seems better for handling json data

                var newJsonOutput = JSON.stringify(jsonData); //stringify new data

                var jsonFile = new BCAPI.Models.FileSystem.File(appDirLocation + "public/_data/resource_data.json");

                jsonFile.upload(newJsonOutput).done(function () {
                    $("#contentItemsList").html(""); //clear old data to load new
                    console.log("RESOURCE DATA UPDATED");
                    $('#editResourceItem').foundation('close'); //close reveal after created and saved file
                    renderResourceItems(resourceId);
                }).fail(function (jqXHR) {
                    console.log("RESOURCES JSON FAILED UPDATE: " + jqXHR.responseText);
                }); // END OF JSON CREATING

                console.log(newJsonOutput);

            }).done(function (dataprocessed) {
                console.log(dataprocessed);
            }).fail(function (jqXHR) {
                console.log("Request failed." + "Error code: " + jqXHR.status + "Error text: " + jqXHR.statusText + "Response text: " + jqXHR.responseText);
            });

        });