繁体   English   中英

当字符串末尾带有'\\'时,Json String无法解码

[英]Json String can't decode when end of string have `\'

当JSON字符串的任何字符串末尾都有\\时,它给我:

Ext.JSON.decode():您正在尝试解码无效的JSON字符串

JSON解码错误:

未捕获的Ext.JSON.decode():您正在尝试解码无效的JSON字符串:

 [{"ID1":"1","ID2":"1","NAME":"Act\\"},{"ID1":"3","ID2":"1","NAME":"Act\\"},{"ID1":"4","ID2":"2","NAME":"act $#%^&&*"},{"ID1":"2","ID2":"2","NAME":"act $#%^&&*"}] 

我如何避免上述错误?

这是无效的JSON,因为\\字符转义了"字符,该字符将导致字符串关闭-这样,您的字符串将保持未关闭状态(即直到下一个"出现)。

因此,您的问题是反斜杠在字符串中具有特殊含义。 如果要使用斜杠,请改用\\\\ (请注意,这样做是对反斜杠字符本身进行转义。)

即:

{"ID1":"1","ID2":"1","NAME":"Act\\"}

您需要转义该反斜杠。 最初,我认为您只需要使用一个转义字符,但是根据此演示 ,您需要使用三个:

{"ID1":"1","ID2":"1","NAME":"Act\\\\"}

如果您测试JSON,则会发现它无效: http : //jsonlint.com/您需要用另一个\\来转义\\

\\Act

您应该先对JSON进行编码,或者在可能的情况下手动对其进行编码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM