将字符串转换为json出现未定义错误
Convert string to json got undefined error
我有一个字符串张贴在这里。我想把这个字符串转换成json字符串。但是我得到了错误信息"undefine",请帮我做这个。
data = JSON.parse('{ name: "CHE-TELUGU", value: 123, y: 10.8 },{ name: "CHE-CORPORATE", value: 45, y: 40.8 },{name: "CHE-MALAYALAM",value: 155,y: 12.8,sliced: true,selected: true},{ name: "CHE-OPERATION", value: 20, y: 60.8 },{ name: "TRY-OPERATION", value: 20, y: 60.8 } ');
alert(data);
你得到一个错误的原因是因为你的字符串不是有效的JSON有两个原因:
- 你的对象需要被包装在[]中,因为它们是一个数组
- 你的对象属性应该用双引号包装
所以,像这样可以:
JSON.parse('[{ "name": "CHE-TELUGU", "value": 123, "y": 10.8 }]')
为了帮助您更多地了解JSON并玩游戏,请尝试以下操作:
如果你打开Chrome,然后打开开发者工具并转到控制台选项卡,你可以快速编写JS语句来测试它们。例如,如果您尝试无效的JSON,如JSON。parse('{name: "CHE-TELUGU"}') -属性名称没有双引号-您将看到消息'SyntaxError: Unexpected token n'。
同样,如果你尝试JSON。parse('{"name": "CHE-TELUGU"},{"name": "CHE-TELUGU"}') -不使用对象的[]来创建数组-您将看到消息'SyntaxError: Unexpected token,'.
再加上Ian Routledge所说的——你的字符串需要显示为:
[
{
"name" : "CHE-TELUGU",
"value" : 123,
"y" : 10.8
},
{
"name" : "CHE-CORPORATE",
"value" : 45,
"y" : 40.8
},
{
"name" : "CHE-MALAYALAM",
"selected" : true,
"sliced" : true,
"value" : 155,
"y" : 12.8
},
{
"name" : "CHE-OPERATION",
"value" : 20,
"y" : 60.8
},
{
"name" : "TRY-OPERATION",
"value" : 20,
"y" : 60.8
}
]
相关文章:
- chrome.storage.sync未定义错误
- 对象为null或IE9中存在未定义错误
- 已定义变量出现未定义错误
- 'define' 在 RequireJS 和 Webapp Yo 生成器上未定义错误
- onreadystatechange未定义错误
- 在CoffeeScript文件上运行Jasmine测试时,对象未定义错误
- 如何修复JSlint报告的“foo未定义”错误
- 无法仅在活动服务器上读取未定义错误的属性“top”
- 主干无法读取属性'属性'主干视图中的未定义错误
- 如何克服javascript中的未定义错误
- require未定义错误
- 单击链接时出现函数未定义错误
- 函数为未定义错误
- 主干未定义错误
- 使用Javascript打印HTML:未定义错误
- 避免“无法读取”属性'获取'的未定义错误
- 未捕获类型错误的coffescription:无法读取属性'offsetWidth'的未定义错误
- ajax上get函数内部的未定义错误
- Javascript变量未定义错误
- AngularJS指令作用域未解析(“属性名称未定义”错误)