从String变量解析JSON数据并将其转换为$ scope.variable中的对象

时间:2016-04-13 07:29:01

标签: javascript angularjs json

我有一个包含JSON数据的字符串变量,如下所示。

var jsonstring = [{"latitude":"51.5263","longitude":"-0.120285","altitude":"","device":"123","rating":"5","region":"Europe","customer":"","time":"1-2 Weeks","error":"Error 1","application":"Phone","age":"< 1 Year"}, {"latitude":"27.58","longitude":"23.43","altitude":"","device":"Asc 140","rating":"4","region":"Africa","customer":"","time":"< 1 Week","error":"Error 1","application":"PCB","age":"1-3 Years"}, {"latitude":"39.55","longitude":"116.25","altitude":"","device":"CVB","rating":"4","region":"China","customer":"","time":"1-2 Weeks","error":"Error 2","application":"Sorting","age":"3-5 Years"}]

我想获取此字符串并将其转换为对象数组(,这将是$ scope.variable ),以便我能够单独访问每个对象。 我尝试使用 JSON.parse(),但它将整个字符串放入一个对象而不是多个对象。

请帮助我。

4 个答案:

答案 0 :(得分:0)

您要使用JSON.parse解析整个字符串。

然后可以像任何其他阵列一样到达阵列中的每个对象,例如myArray[index]myArray.map() / myArray.forEach()

答案 1 :(得分:0)

var jsonstring = '[{"latitude":"51.5263","longitude":"-0.120285","altitude":"","device":"123","rating":"5","region":"Europe","customer":"","time":"1-2 Weeks","error":"Error 1","application":"Phone","age":"< 1 Year"}, {"latitude":"27.58","longitude":"23.43","altitude":"","device":"Asc 140","rating":"4","region":"Africa","customer":"","time":"< 1 Week","error":"Error 1","application":"PCB","age":"1-3 Years"}, {"latitude":"39.55","longitude":"116.25","altitude":"","device":"CVB","rating":"4","region":"China","customer":"","time":"1-2 Weeks","error":"Error 2","application":"Sorting","age":"3-5 Years"}]';
$scope.variable = JSON.parse(jsonstring);

答案 2 :(得分:0)

[{ “纬度”: “51.5263”, “经度”: “ - 0.120285”, “高度”: “”, “设备”: “123”, “等级”: “5”, “区域”:”欧洲“,”客户“:”“,”时间“:”1-2周“,”错误“:”错误1“,”申请“:”电话“,”年龄“:”&lt; 1 Year“}, {“纬度”:“27.58”,“经度”:“23.43”,“海拔”:“”,“设备”:“Asc 140”,“评级”:“4”,“地区”:“非洲”,“ customer“:”“,”time“:”&lt; 1 Week“,”error“:”Error 1“,”application“:”PCB“,”age“:”1-3 Years“}, { “纬度”: “39.55”, “东经”: “116.25”, “高度”: “”, “设备”: “CVB”, “等级”: “4”, “区”: “中国”,“客户“:”“,”time“:”1-2周“,”错误“:”错误2“,”申请“:”排序“,”年龄“:”3 - 5年“}]

这是一个数组对象。它不是一个字符串对象。

你可以这样再试一次:

var jsonString =“[]”; var json = JSON.parse(jsonString);

答案 3 :(得分:0)

JSON.parse()方法将字符串解析为JSON。 您的问题中的代码显示您正在尝试解析JS对象而不是字符串。

在下面的示例中,如果您尝试解析JS对象,则会收到错误。

var jsonstring = [{},{}];
JSON.parse(jsonstring); // ERROR Uncaught SyntaxError: Unexpected token o

以下工作(请注意jsonstring是一个字符串,而不是这里的对象):

var jsonstring = '[{},{}]';
JSON.parse(jsonstring); // OK