在Chrome控制台中使用时,我发现Ext JS(版本4.1)Ext.JSON.encode()
和Chrome版本(版本21.0.1180.79)JSON.stringify()
之间存在差异:
JSON.stringify({"title": "ä"})
> "{"title":"ä"}"
Ext.JSON.encode({"title": "ä"})
> "{"title":"\u00e4"}"
由于我想在浏览器中显示结果,我更喜欢Chrome的结果,但我知道我不能真正依赖Chrome在其他浏览器中的JSON处理。那么如何通过Sencha的Ext JS实现Chrome的结果呢?
答案 0 :(得分:5)
您可以在Extjs 4中将Ext.USE_NATIVE_JSON设置为true。
答案 1 :(得分:0)
您需要知道值是相同的。 \ u00e4 是字符ä的真实utf-8表示形式。 Chrome可能会输出ä解码,以便更好地满足用户的需求,但在解码时,两个值都相同:
JSON.stringify({"title": "ä"})
> "{"title":"ä"}"
Ext.JSON.encode({"title": "ä"})
> "{"title":"\u00e4"}"
JSON.parse('{"title":"ä"}')
> Object {title: "ä"}
Ext.JSON.decode('{"title":"\u00e4"}')
> Object {title: "ä"}
JSON.parse('{"title":"\u00e4"}')
> Object {title: "ä"}
Ext.JSON.decode('{"title":"ä"}')
> Object {title: "ä"}