如何过滤json中的特殊字符?

时间:2013-02-22 04:03:25

标签: json

我使用java生成的json:

[{"nickname":"abc,def"},{"nickname":"abc'def"},{"nickname":"abc"def"}]

当我执行eval()时,它会引发异常。

我想在json中保留逗号和引号。

如何处理这种情况?

2 个答案:

答案 0 :(得分:3)

你有一个例外,因为你的json无效!你是怎么生成它的?无论使用何种语言,都要构建数据结构并调用json编码函数(例如PHP中的json_encode)来生成有效的json。

在此特定示例中,您需要转义最后一个字符串中的双引号:

   [{"nickname":"abc,def"},{"nickname":"abc'def"},{"nickname":"abc\"def"}]

注意:使用eval是不安全的,您需要使用JSON.parse()!

答案 1 :(得分:1)

您需要通过解析JSON来处理这种情况。

eval()不解析JSON。

你需要调用JSON.parse(),它解析JSON并且可以正常工作。


解决方案的另一部分是生成有效的JSON "abc"def"无效JSON。

您需要更改Java代码以使用生成有效JSON的实际JSON库(例如gson或jackson)。