Javascript数组到JSON数组

Mad*_*bar 6 jquery json backbone.js

我正在使用JSON发送Ajax数据.我从输入文本框中获取逗号分隔的手机号码.并且,我将其转换为javascript数组.
以下是我的代码:

  var myarray = {};
    myarray = this.model.get('mobileno').split(',');
Run Code Online (Sandbox Code Playgroud)

结果:myarray:["123","4567"];

我将为我的模型设置相同的值,如下所示:

this.model.set('mobileno',JSON.stringify(myarray ));
Run Code Online (Sandbox Code Playgroud)

然后,值如下所示:

console.log(this.model.get('mobileno'));
Run Code Online (Sandbox Code Playgroud)

结果:mobileno:"["123","4567"]"

所以,我的模型变成了 this.model.toJSON();

结果:对象{mobileno:"["123","4567"]}

到此为止,一切都是正确的.之后,我需要将这个模型设置为另一个模型,并且stringfy会给我如下:

 anotherModel.set('data', this.model);
Run Code Online (Sandbox Code Playgroud)

"数据":{ "mobileno": "[\" 123\"\ "456 \"]"}

但是,我需要像"数据":{"mobileno":["123","456"]}

我们将不胜感激.

ikr*_*bbe 7

JSON.stringify从你的数组中生成一个字符串.这显然不是你想要的.或者正如你所说,这就是你想要的this.model

直到这里一切都是正确的.

但在另一个模型中,您希望将数组设置为字符串,而不是数组.因为我不知道你在使用backbone.js做什么我把它写成纯粹的javascript

data = JSON.parse(this.model.get("mobileno"))
Run Code Online (Sandbox Code Playgroud)

应该做的工作.但你可以设置

data = { "mobileno": myarray }
Run Code Online (Sandbox Code Playgroud)

BTW.如果backbone.js只是混淆javascript对象和数组表示法,我建议不要使用它.正如您告诉我们的,backbone.js this.model.get('mobileno')返回一个包含该mobileno字段的对象.在我的逻辑世界中,anything.get('XY')应该返回XY不包含XY属性的对象的值.

  • 您的代码没有问题,但您可以查看javascript对象,字符串和JSON.实际上JSON只是'Java Script Object Notation',因此`JSON.stringify(ARG)`只返回一个字符串,其内容可以复制到javascript文本中以记下对象的状态.因此,如果你说`obj = JSON.stringify(obj)`,`obj`将是一个字符串,无论之前是什么`obj`.如果`obj`是一个字符串,它将是一个字符串,包含一个带引号的字符串. (2认同)