【问题标题】:How to avoid Chrome crashing on parsing this JSON?如何避免 Chrome 在解析此 JSON 时崩溃?
【发布时间】:2020-06-22 06:41:29
【问题描述】:

我创建了一个非常简单的网页,它只解析一些 JSON 字符串,但不知何故浏览器总是崩溃。我使用 Chrome 80.0.3987.132。我用验证器测试了字符串,它确保它是有效的 JSON。如何调试我的代码以查看它失败的原因?有没有办法解析 JSON 而不会失败?

Chrome 80.0.3987.132(在 Ubuntu 上)中的结果:

<!DOCTYPE html>
<html>
<body>

<h1>Can Chrome parse JSON?</h1>

<script>
var my_json = `{
   "base":[
      {
         "params":{
            "list":[
               {
                  "description":"bla",
                  "max":0.5,
                  "min":0.0,
                  "name":"bla",
                  "stepsize":0.01,
                  "type":"float",
                  "unit":"M"
               },
               {
                  "description":"bla",
                  "max":null,
                  "min":null,
                  "name":"bla",
                  "params":[
                     {
                        "description":"bla",
                        "max":15,
                        "min":5,
                        "name":"bla",
                        "stepsize":0.1,
                        "type":"float",
                        "unit":null
                     },
                     {
                        "description":"bla",
                        "max":15,
                        "min":0.1,
                        "name":"bla",
                        "stepsize":0.01,
                        "type":"float",
                        "unit":null
                     }
                  ],
                  "type":"ARRAY",
                  "unit":null
               }
            ]
         }
      }
   ]
}`
JSON.parse(my_json)
</script>

</body>
</html>

【问题讨论】:

  • @Teemu 问题中的 sn-p 字面意思是 this icon
  • 因为user RomsBay reported a loss of data in Chrome,我取消了对代码部分的sn-ped,我们不希望其他用户如此容易地发生这种情况。
  • @CBroe 我创建了这个简单的页面,因为当我尝试从服务器读取数据时,我的浏览器总是崩溃。
  • 在 Windows (Chrome 80.0.3987.132) 上相同。如果将此代码粘贴到控制台中,它也会中断。但是,如果您删除任何字段,它就会通过。然后,通过后,重新粘贴原始代码即可通过。应该向 Chrome 团队报告。恐怕不是 Stack Overflow 上可以解决的事情。
  • @CBroe 您的代码不会像从 Web 服务器返回的那样解析 JSON 字符串。

标签: javascript html json google-chrome


【解决方案1】:

其实这很奇怪,但是如果你删除了第二个 "unit":null 它会起作用,但我不知道为什么但试试这个 JSON:

{
  "base": [
    {
      "params": {
        "list": [
          {
            "description": "bla",
            "max": 0.5,
            "min": 0,
            "name": "bla",
            "stepsize": 0.01,
            "type": "float",
            "unit": "M"
          },
          {
            "description": "bla",
            "max": null,
            "min": null,
            "name": "bla",
            "params": [
              {
                "description": "bla",
                "max": 15,
                "min": 5,
                "name": "bla",
                "stepsize": 0.1,
                "type": "float",
                "unit": null
              },
              {
                "description": "bla",
                "max": 15,
                "min": 0.1,
                "name": "bla2",
                "stepsize": 1,
                "type": "float"
              }
            ],
            "type": "ARRAY",
            "unit": null
          }
        ]
      }
    }
  ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多