Json将&在String中转换为\ u0026

我试图从pdf中提取文本并将其写入json文件。 在提取unicode字符时,Json会将所有字符转换为\ u0026。 例如,我的实际字符串是&#1588 。 (代表ش)。 它可以正确打印到.txt文件,控制台等。但是当我尝试将此字符串打印到Json文件时,它会显示\u0026#1588;

我使用的是Java,代码是

 Gson gson = new Gson(); String json = gson.toJson(pdfDoc); 

注意: pdfDoc是一个对象,它包含输入PDF文档中字符的所有详细信息(位置,颜色,字体等)。 我正在使用gson-2.2.1.jar

这实际上是一种有效(但不是必需的)编码。 可以使用JSON中的unicode转义编码任何字符,并且任何有效的JSON解析库都必须能够解释这些转义。

&不是需要编码的字符的一部分(请参阅json.org上string的定义),但是有一些JSON库在编码时非常“激进”。 这通常不是问题,除非你没有用一致的JSON解析器真正处理生成的JSON。

如果你绝对需要, GsonBuilder.disableHtmlEscaping()将帮助你关闭该function。