试图找到一种方法来将 JSON 字符串字符串化,使用像 JavaScript 这样的转义字符。
例如——
输入:
{"name":"Error","message":"hello"}
输出:
"{\"name\":\"Error\",\"message\":\"hello\"}"
我可以使用 Gson 将对象作为 JSON 字符串获取,但不能进行字符串化(使用转义字符)。
这可以用 Java 实现吗?
最佳答案
您的输入是一个作为文本的 JSON 对象,可能存储在 String
中。您实质上是在尝试将该文本 转换为 JSON 字符串。所以就这样做吧。
String input = "{\"name\":\"Error\",\"message\":\"hello\"}";
System.out.println("Original JSON content: " + input);
Gson gson = new Gson();
String jsonified = gson.toJson(input);
System.out.println("JSONified: " + jsonified);
由于引号(和其他字符)必须在 JSON 字符串中转义,toJson
将正确执行该转换。
上面的代码会产生
Original JSON content: {"name":"Error","message":"hello"}
JSONified: "{\"name\":\"Error\",\"message\":\"hello\"}"
换句话说,jsonified
现在包含 JSON 字符串的内容。
对于 Jackson,过程是一样的,只是序列化包含您的 JSON 对象文本的 String
实例
ObjectMapper mapper = new ObjectMapper();
StringWriter writer = new StringWriter();
mapper.writeValue(writer, input);
jsonified = writer.toString();
System.out.println("JSONified: " + jsonified);
产生
JSONified: "{\"name\":\"Error\",\"message\":\"hello\"}"
关于java - 如何将 JSON 对象内容编码为 JSON 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44000409/