嗨,我有一个这样的字符串:
a = '{test: "3", company: "hi", time: "1397758516000", test: "29", test: "48"}'
我想获得所有键的值。我想解析它:
JSON.parse(a) //which throws the error --> SyntaxError: JSON.parse: expected property name or '}'
a['device'] //Get the device value
如何解决这个问题?
答案 0 :(得分:2)
您也可以使用eval函数来获取JavaScript对象,但JSON.parse的问题是您的字符串无效。键也应该包含在这样的引号中:
a = '{"device": "3", "company": "hi", "time": "1397758516000", "lat": "29.339533333333332", "lon": "48.009258333333335"}';
答案 1 :(得分:1)
正如@ Volter9所说,你有不正确的JSON字符串。如果你想保留它,请尝试:
var output = JSON.parse(a.replace(/([a-z]+):/gi, '"$1":'));
console.log(output.device);
答案 2 :(得分:1)
修复JSON之后,如Volter9的回答所示,获取值的代码也需要修复。它应该是:
var parsed = JSON.parse(a);
var device = parsed.device; // or parsed['device']
答案 3 :(得分:0)
你JSON不是json,它是一个原生的js对象。
{"device":"3","company":"hi","time":"1397758516000","lat":"29.339533333333332","lon":"48.009258333333335"}
是有效的。
a = {test: "3", company: "hi", time: "1397758516000", test: "29", test: "48"};
您可以JSON.stringify(a)
将原生js对象转换为有效的json。