【发布时间】:2017-11-09 03:22:07
【问题描述】:
我有一个 Java 对象,我想将它输出为 JSON 字符串。但我想避免打印出 Java 对象中的属性。我知道我可以使用 GsonBuilder 的 excludeFieldsWithoutExposeAnnotation() 方法来做到这一点。但是,我想我会尝试在打印出来之前从 JsonObject 中删除属性的替代方法。以下代码有效:
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd' 'HH:mm:ss").create();
String javaObjectString = gson.toJson(javaObject);
//javaObjectString currently include "property":"value"
JsonElement jsonElement = gson.toJsonTree(javaObjectString, javaObject.getClass());
JsonObject jsonObject = (JsonObject) jsonElement;
jsonObject.remove("property");
javaObjectString = gson.toJson(jsonObject);
//javaObjectString currently no longer includes "property":"value"
但是,这感觉有点麻烦,因为我必须将 Java 对象输出到 String,然后从 String 创建一个 JsonElement,然后将 JsonElement 转换为 JsonObject。
有没有更直接的方法可以从 Java 对象转到 JsonObject?
【问题讨论】: