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

时间:2015-12-02 06:39:09

标签: 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;
}

正如你所看到的,这个类有原始字段,包含原始类型包装的字段(如存在布尔值),枚举(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字符串。

1 个答案:

答案 0 :(得分:1)

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

使用jackson,您可以编写如下代码

`https://jsfiddle.net/2pr2pq78/`

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