我在这里搜索了一些相关的帖子,但没有帮助。我创建了一个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格式。
答案 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'
});
}
假设您正在使用可以通过此端点进行读写的服务器。