Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加到JSON字符串_Javascript_Json_Knockout.js - Fatal编程技术网

Javascript 添加到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

我有一个JSON字符串,如下所示:

[
    {"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编码器。