有人可以建议为什么会发生这种情况......
我有一些代码可以打印一些JSON.为此,我正在使用Gson库.
但是,虽然通常效果很好,但某些字符似乎没有正确显示.这是一段简单的代码,演示了这个问题:
//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));
Run Code Online (Sandbox Code Playgroud)
上面代码的输出是:
{"root":{"value":"xpath('hello')"}}
{
"root": {
"value": "xpath(\u0027hello\u0027)"
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能解决上述问题?
npe*_*npe 31
使用此代码创建Gson对象:
Gson gs = new GsonBuilder()
.setPrettyPrinting()
.disableHtmlEscaping()
.create();
Run Code Online (Sandbox Code Playgroud)
该disableHtmlEscaping()方法告诉 gson不要逃避HTML字符,如<,>,&,=,并造成你的麻烦一个单引号:'.
请注意,如果您<script/> tag在未使用其他<![CDATA[ ... ]]>标记的情况下将此类未转义的JSON呈现到HTML页面中,则可能会造成问题.
通过查看JsonWriter类的代码,您可以看到它是如何工作的,以及其他字符是否被转义.
| 归档时间: |
|
| 查看次数: |
14248 次 |
| 最近记录: |