首页 > 解决方案 > 在 ExtJS 7 中使用 Ext.decode() 时如果在 json 中注释会出错

问题描述

Ext.decode() 现在非常严格。当 JSON 中有注释或任何无效的 json 格式(例如没有双引号)时,它会引发错误。如何禁用此类检查?

Ext.decode('{ test: test}');
OR
Ext.decode(`{//test 
    "include": [
        "main.json"
    ]
}`)

未捕获的错误:您正在尝试解码无效的 JSON 字符串:

但这不会在 6.2.0 中引发错误

标签: extjsextjs7

解决方案


就像提到的 devbnz 一样,有第二个参数,如果设置为 true,方法不会抛出错误,而是返回 null。 https://docs.sencha.com/extjs/6.5.3/classic/Ext.html#method-decode

但在 6.6.0 之前,Ext.decode() 仍然可以接受无效的 json。它已在 6.6.0 https://docs.sencha.com/extjs/6.6.0/guides/whats_new/release_notes.html中修复

EXTJS-18443 JSON 解码器应该在无效语法上抛出异常


推荐阅读