如何避免 Chrome 在解析此 JSON 时崩溃?
Posted
技术标签:
【中文标题】如何避免 Chrome 在解析此 JSON 时崩溃?【英文标题】:How to avoid Chrome crashing on parsing this 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 字符串。 【参考方案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
]
]
【讨论】:
以上是关于如何避免 Chrome 在解析此 JSON 时崩溃?的主要内容,如果未能解决你的问题,请参考以下文章
当我的 MSVS C++ 应用程序崩溃时,如何避免弹出错误对话框
仅当通过 Testflight 安装时应用程序崩溃解析 JSON
ios 13 SwiftUI向后导航时如何避免导航视图内的TabView应用崩溃
Telerik Image Manager - 上载图像时的JSON解析错误,EnableAsyncUpload设置为True