如何将 Java 对象序列化为转义的 JSON 字符串



有没有办法将Java对象转换为如下所示的字符串?请注意,应转义所有归档名称,并使用"n"来分隔记录。

{
"content":"{"field1":123, "field2":1, "field3":0, "field4":{"sub1":"abc", "sub2":"xyz"}}n
{"field1":234, "field2":9, "field3":1, "field4":{"sub1":"xyz", "sub2":"abc"}}"
}

谢谢

您可以使用 GSON 来完成该任务。

Gson 是一个 Java 库,可用于将 Java 对象转换为其 JSON 表示形式。它还可用于将 JSON 字符串转换为等效的 Java 对象。Gson 可以使用任意 Java 对象,包括您没有源代码的预先存在的对象。

如果您需要更好的可读表示形式,您可以使用漂亮的打印功能。

Gson gson = new GsonBuilder().setPrettyPrinting().create();

若要实现类似于示例的内容,可以在第一步中序列化内容类,将生成的字符串作为属性放入另一个类中,然后再次序列化该类。

这样,GSON就可以处理"的逃跑。

如果您将字符串收集在一个数组中并使用上面显示的漂亮打印选项,您将获得类似于换行符要求的内容,但不完全相同。

上述过程的结果可能如下所示:

{
  "content": [ 
    "{"field1":123, "field2":1, "field3":0, "field4":{"sub1":"abc", "sub2":"xyz"}}",
    "{"field1":234, "field2":9, "field3":1, "field4":{"sub1":"xyz", "sub2":"abc"}}"
  ]
}

另一种选择是使用 Json-lib 库 http://json-lib.sourceforge.net

String jsonStrData = " ....... ";
JSONObject jsonObj = JSONObject.fromObject(jsonStrData);
System.out.println(jsonObj);

与 GSON 一样,json-lib 会为您处理转义,有关如何使用它的更多信息,请点击此处 http://json-lib.sourceforge.net/usage.html

最新更新