我有一个包含以下字段的类
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/