Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Gson漂亮地打印JSON字符串的问题_Java_Json_Gson - Fatal编程技术网

Java 使用Gson漂亮地打印JSON字符串的问题

Java 使用Gson漂亮地打印JSON字符串的问题,java,json,gson,Java,Json,Gson,有人能告诉我为什么会这样吗 我有一些代码可以打印一些JSON。为了做到这一点,我利用了 然而,尽管这样通常效果很好,但有些字符似乎没有正确显示。下面是一段简单的代码,演示了该问题: //Creating the JSON object, and getting as String: JsonObject json = new JsonObject(); JsonObject inner = new JsonObject(); inner.addProperty("value", "xpath('

有人能告诉我为什么会这样吗

我有一些代码可以打印一些JSON。为了做到这一点,我利用了

然而,尽管这样通常效果很好,但有些字符似乎没有正确显示。下面是一段简单的代码,演示了该问题:

//Creating the JSON object, and getting as String:
JsonObject json = new JsonObject();
JsonObject inner = new JsonObject();
inner.addProperty("value", "xpath('hello')");
json.add("root", inner);
System.out.println(json.toString());

//Trying to pretify JSON String:
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser parser = new JsonParser();
JsonElement je = parser.parse(json.toString());
System.out.println(gson.toJson(je));
上述代码的输出为:

{"root":{"value":"xpath('hello')"}}
{
  "root": {
    "value": "xpath(\u0027hello\u0027)"
  }
}

如何修复上述问题?

使用此代码创建
Gson
对象:

Gson gs = new GsonBuilder()
    .setPrettyPrinting()
    .disableHtmlEscaping()
    .create();
disableHtmlEscaping()
方法告诉
gson
不要转义HTML字符,例如
&
=
,以及一个引起麻烦的引号:
'

请注意,如果您在HTML页面中将此类未转换的JSON呈现为
标记
,而不使用额外的
标记,则这可能会导致问题

通过查看的代码,您可以看到它是如何工作的,以及其他哪些字符被转义的