0

我像这样使用java生成的json:

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

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

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

如何处理这种情况?

4

2 回答 2

3

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

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

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

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

于 2013-02-22T04:07:50.880 回答
1

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

eval()不解析 JSON。

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


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

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

于 2013-02-22T04:06:04.890 回答