将字符串转换为json出现未定义错误

Convert string to json got undefined error

本文关键字:未定义 错误 json 字符串 转换      更新时间:2023-09-26

我有一个字符串张贴在这里。我想把这个字符串转换成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有两个原因:

  1. 你的对象需要被包装在[]中,因为它们是一个数组
  2. 你的对象属性应该用双引号包装

所以,像这样可以:

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
   }
]