java - 如何生成java实例的完整json字符串

标签 java json gson

我有一个包含以下字段的类

class MyEvent {
    private long eventId;
    private EventType eventType;
    private EventCategory category;
    private List<String> params;
    private Boolean exists;
    private long time;
    private MyLocation location;
    private boolean eventFlag;
    private EventCriticality criticality;
    private EventStatus eventStatus;
}

正如你所看到的,这个类有原始字段、带有原始类型包装的字段(如 boolean 存在)、枚举(EventStatus、EventCategory 等)和其他引用的字段(如 MyLocation 位置)、集合

我想生成完整的 json 字符串,其中包含所有字段。

当我使用时

Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(myevent);  

我只为原始字段生成 json

{
  "eventid": 0,
  "time": 0,
  "eventFlag": false
}

这里 myevent 是 MyEvent 的实例,我通过使用反射获得它,即我有类,然后调用 clazz.newInstance()

如何生成包含所有字段的 json 字符串,即完整的 json 字符串。

最佳答案

如果您可以灵活更改 api,则可以使用 Jackson API http://wiki.fasterxml.com/JacksonHome .

使用 Jackson,你可以编写这样的代码

MyEvent myEvent = new MyEvent();
//Your code to set myEvent
ObjectMapper mapper = new ObjectMapper();
String str1 = mapper.writeValueAsString(myEvent);

您将获得所需的输出。它将循环遍历 myEvent 中的所有对象并生成一个 json。

关于java - 如何生成java实例的完整json字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34036411/

相关文章:

Java AudioSystem 和 TargetDataLine

PHP - JSON 编码问题

java - 将 GsonBuilder 转换为 Kotlin

java - 如何使用 GSON 将 json 文件解析为 java POJO 类

javascript - 在 JavaScript 中获取对象的属性

java - 使用gson解析大json文件

Java素数法

java - 当任何一个 ListArray 具有重复元素时,计算 ListArray 的数量

java - Eclipse (Kepler) 工作区表现怪异(类型层次结构,搜索引用不起作用)

python - 将 Pandas DataFrame 转换为 JSON