如何从现有JSON文件添加新JSON
我在这里搜索了一些相关的post但没有帮助。 我创建了一个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格式。
您需要读取您的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' }); }
假设您使用的服务器可以通过此端点进行读写。
错误发生在两个版本的JSON中。 你错过了"
在字符串c
的开头 。
http://jsonlint.com/将帮助您追踪JSON中出现的错误。
根据经验,您应该在成熟的库中使用JSON序列化程序创建JSON,而不是手动或字符串连接。
现在我在我的json文件中喜欢这个
那是完全错误的。 你在“现在我想要达到这样的目标”中所拥有的代码是正确的(除了上面提到的错误)。