Javascript 添加到JSON字符串
我有一个JSON字符串,如下所示:Javascript 添加到JSON字符串,javascript,json,knockout.js,Javascript,Json,Knockout.js,我有一个JSON字符串,如下所示: [ {"TypeName":"Double","TypeID":14}, {"TypeName":"Single","TypeID":43}, {"TypeName":"Family","TypeID":7} ] 在KnockOut中调用此函数后生成: self.save = function() { var dataToSave = $.map(self.lines(), function(line) { r
[
{"TypeName":"Double","TypeID":14},
{"TypeName":"Single","TypeID":43},
{"TypeName":"Family","TypeID":7}
]
在KnockOut中调用此函数后生成:
self.save = function() {
var dataToSave = $.map(self.lines(), function(line) {
return line.product() ? {
TypeName: line.category().TypeName,
TypeID: line.category().TypeID
: undefined
});
alert(JSON.stringify(dataToSave));
但是,在将其发布回我的服务器之前,我想在模型中再添加3条信息-同时发送姓名、电子邮件和电话:
{
"Name":"Mark",
"Email":"me@me.com",
"Tel":"0123456789",
"Rooms":
[
{"TypeName":"Double","TypeID":14},
{"TypeName":"Single","TypeID":43},
{"TypeName":"Family","TypeID":7}
]
}
是否有适当的方法将此信息添加到JSON中,或者只需执行以下操作:
var toSend = "{\"Name\":\"Mark\":\"Email\":\"me@me.com\", \"Tel\":\"0123456789\",\"Rooms\":"
+ JSON.stringify(dataToSave) + "}";
谢谢,
标记使用JSON.Parse将JSON字符串解析为一个有效的JS对象,根据需要将数据添加到该对象中,然后使用JSON.stringify将其还原。JSON字符串只是数据的一种表示形式,因此不应依赖于直接修改它。使用JSON.Parse将JSON字符串解析为有效的JS对象,根据需要将数据添加到对象中,然后将其重新设置为JSON.stringify。JSON字符串只是数据的一种表示形式,因此您不应该依赖于直接修改它。当您可以将实际需要的结构传递给JSON encdoder时,为什么要编码为JSON,然后修改生成的字符串
var toSend = JSON.stringify({
Name: "Mark",
Email: "me@me.com",
Tel: "0123456789",
Rooms: dataToSave
});
当您可以将实际需要的结构传递给JSON encdoder时,为什么要编码为JSON,然后修改生成的字符串
var toSend = JSON.stringify({
Name: "Mark",
Email: "me@me.com",
Tel: "0123456789",
Rooms: dataToSave
});
我会解析和字符串化。如果可能的话,可能完全省略解析。你的代码似乎应该可以工作——不过要学会喜欢单引号,这样你就不必逃避太多。我会解析和字符串化。如果可能的话,可能完全省略解析。您的代码似乎应该可以工作-尽管要学会喜欢单引号,这样您就不必太多地逃避了。+1-这是保证JSON保持有效的唯一方法。如果您在编码数据之前无法控制数据,这是一个很好的建议,但这里的情况并非如此。他可以简单地将不同的结构传递给JSON编码器。+1-这是保证JSON保持有效的唯一方法。如果您在编码数据之前无法控制数据,这是一个很好的建议,但这里不是这样。他可以简单地将不同的结构传递给JSON编码器。