我使用java生成的json:
[{"nickname":"abc,def"},{"nickname":"abc'def"},{"nickname":"abc"def"}]
当我执行eval()
时,它会引发异常。
我想在json中保留逗号和引号。
如何处理这种情况?
答案 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)。