如何从现有JSON文件添加新JSON

时间:2014-11-27 13:57:26

标签: javascript jquery json

我在这里搜索了一些相关的帖子,但没有帮助。我创建了一个json文件,它有一些文本我想在javascript中添加一些json(JSON存储在本地)。

我有json file这样:

{ "Home": [ "a", "b", "c" ] }

我想要包含此文"Log": 1

希望实现这样的目标,

{ "Home": [ "a", "b", "c" ], "Log": 1 }

现在我在我的json文件中已经喜欢这个(目前我有,但json格式不正确)

{ "Home": [ "a", "b", "c" ] } 
{ "Log": 1 }

$.getJSON('myfile.json', function(data) {
    alert("success");
}.error(function(data){
    alert(JSON.stringify(data));
});

这会返回parser error。我知道JSON格式是错误的。请指导我创建一个正确的JSON格式。

2 个答案:

答案 0 :(得分:4)

错误出现在两个版本的JSON中。您错过了字符串"开始c

http://jsonlint.com/将帮助您找出JSON中出现错误的位置。

根据经验,您应该在成熟的库中使用JSON序列化程序创建JSON,而不是手动或字符串连接。


  

现在我在我的json文件中已经喜欢这个了

那是完全错误的。你在“现在我想要达到这样的目标”中所拥有的代码是正确的(除了上面提到的错误)。

答案 1 :(得分:3)

您需要阅读JSON,将其解析为JS对象,编辑对象,然后在写入之前转换回JSON:

假设myfile.json包含:     {" Home":[" a"," b"," c" ]}

$.getJSON('myfile.json', function(data) {
    alert("success");
    obj = JSON.parse(data);
    obj.log = 1;
    writeJSON(JSON.stringify(obj));
}.error(function(data){
    alert(JSON.stringify(data));
});

和writeJSON将类似:

function writeJSON(jsonString)
    $.ajax({
        type: 'POST',
        url: 'myfile.json',
        data: jsonString,
        success: function(data) { alert('write succesful!'); },
        contentType: "application/json",
        dataType: 'json'
    });
}

假设您正在使用可以通过此端点进行读写的服务器。