我正在使用 JSON 发送 Ajax 数据。我从输入文本框中获取以逗号分隔的手机号码。并且,我将其转换为 JavaScript 数组。
下面是我的代码:
var myarray = {};
myarray = this.model.get('mobileno').split(',');
Result : myarray : ["123", "4567"];
我将为我的模型设置相同的值,如下所示:
this.model.set('mobileno',JSON.stringify(myarray ));
然后,该值将如下所示:
console.log(this.model.get('mobileno'));
Result : mobileno : "["123","4567"]"
所以,我的模型变成了 this.model.toJSON();
Result :Object {mobileno: "["123","4567"]}
到目前为止,一切都是正确的。之后我需要将此模型设置为另一个模型,并且执行 stringfy
会给我如下所示的结果:
anotherModel.set('data', this.model);
"data":{"mobileno":"[\"123\",\"456\"]"}
但是,我需要像 "data":{"mobileno":["123","456"]}
我们将不胜感激您的帮助。
最佳答案
JSON.stringify
从数组中生成一个字符串。这显然不是你想要的。或者正如你所说,这就是你想要的 this.model
Till here everything is correct.
但在另一种模型中,您希望将数组设置为数组,而不是字符串。因为我不知道你在用你的backbone.js做什么,所以我把它写成纯javascript
data = JSON.parse(this.model.get("mobileno"))
应该可以完成这项工作。但你可以设置
data = { "mobileno": myarray }
顺便说一句。如果backbone.js只是混淆了javascript对象和数组表示法,我建议根本不要使用它。正如您告诉我们的,backbone.js this.model.get('mobileno')
返回一个包含 mobileno
字段的对象。在我的逻辑世界中,anything.get('XY')
应该返回 XY
的值,而不是包含 XY
属性的对象。
关于jquery - Javascript 数组到 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31228964/