Как избежать сбоя Chrome при разборе этого JSON? - PullRequest
6 голосов
/ 10 марта 2020

Я создал очень простую веб-страницу, которая просто анализирует некоторую строку JSON, но каким-то образом браузер всегда дает сбой. Я использую Chrome 80.0.3987.132. Я проверил строку с помощью валидатора, и он заверил, что это действительно JSON. Как я могу отладить свой код, чтобы увидеть, почему он не прошел? Есть ли способ проанализировать JSON без сбоев?

Результат в Chrome 80.0.3987.132 (в Ubuntu): enter image description here

<!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>

1 Ответ

0 голосов
/ 10 марта 2020

На самом деле это действительно странно, но если вы удалили вторую "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
          }
        ]
      }
    }
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...