有没有办法将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