Javascript 介绍如何将数组中的字符串类型转换为json

Javascript 介绍如何将数组中的字符串类型转换为json,javascript,node.js,sails.js,waterline,Javascript,Node.js,Sails.js,Waterline,我在Sails中内置了一个简单的REST应用程序,我希望将正确的数据保存在类型为array的模型属性中 投递路线 { name: "savassibeer", locations: [ "{latitude:23789472398.2344,longitude:2734637892.56756756}", "{latitude:22.2344,longitude:2562.56756756,date:2014-02-15T21:49:23.084Z}" ], cr

我在Sails中内置了一个简单的REST应用程序,我希望将正确的数据保存在类型为
array
的模型属性中

投递路线

{
  name: "savassibeer",
  locations: [
    "{latitude:23789472398.2344,longitude:2734637892.56756756}",
    "{latitude:22.2344,longitude:2562.56756756,date:2014-02-15T21:49:23.084Z}"
  ],
  createdAt: "2014-02-15T21:49:23.084Z",
  updatedAt: "2014-02-15T21:49:23.084Z",
  id: "52ffe0e345d19ec72b4fac77"
}
http://localhost:1337/locations/create?name=savassibeer&locations={纬度:23789472398.2344,经度:2734637892.56756756}&位置={纬度:22.2344,经度:2562.56756756,日期:2014-02-15T11:00:00}

结果

{
  name: "savassibeer",
  locations: [
    "{latitude:23789472398.2344,longitude:2734637892.56756756}",
    "{latitude:22.2344,longitude:2562.56756756,date:2014-02-15T21:49:23.084Z}"
  ],
  createdAt: "2014-02-15T21:49:23.084Z",
  updatedAt: "2014-02-15T21:49:23.084Z",
  id: "52ffe0e345d19ec72b4fac77"
}

如何将
位置
中的字符串转换为有效的JSON对象并保存它?

您无法使用URL快捷方式(即在浏览器中点击
/locations/create
)。它们不是用来猜字型的。如果您想以这种方式保存数据,答案是在Locations controller中编写一个自定义的
create
操作,该操作将1)验证上述@marionebl提到的Locations数据,2)将
locations
属性设置为Javascript数组。

只是为了确保解决您的问题:是否要确保
位置中的项目。保存前,位置
是有效的JSON字符串,将每个项目保存为实际的js对象或仅获取json字符串的js对象?另外:您使用哪种版本的Sails/哪种Sails适配器?您是将locations属性设置为控制器中的数组还是模型中的数组?@hamncheez此模型中的
locations
属性为
类型:'array'
(这实际上只是
类型:'json'
)的别名。当您在控制器操作中执行
位置.create()
时,您将
位置
值设置为数组(例如
位置.create({Locations:[{latitude:123,longitude:456},…])