JSON字符串以及如何处理转义字符

时间:2010-09-07 13:20:53

标签: java string json escaping

我在我的java项目广告中使用官方JSON库我发现了一些奇怪的东西。

如果我有这样的json:

{
  "text": "This is a multiline\n text"
}

我试着得到这样的字符串:

System.out.println(jsonObject.getString("text"));

我在输出中得到了这个:

This is a multiline\n text

而不是:

This is a multiline
text

任何人都知道处理\ n和\ t等特殊字符的正确方法吗?我可以随时更换每一个,但我必须逐个处理所有这些。

2 个答案:

答案 0 :(得分:4)

您没有正确转义换行符,应该是:

{
  "text": "This is a multiline\\n text"
}

答案 1 :(得分:1)

上面的示例是正确的并且显示正确,但是有“人类可读”\ n(在字符串中将是\ n)并且存在转义字符\ n(这将是字符串中的原始\ n)。我猜你正在使用的任何库是生成人类可读代码而不是正确的转义代码。

尝试:json_obj.text.replace(/\\n/g,"\n");将字符串转换回来。