【问题标题】:How to convert complex Object to Json String如何将复杂对象转换为 Json 字符串
【发布时间】:2019-05-08 21:20:04
【问题描述】:
我定义了以下类:
public class ClassObjectTwo {
Long a;
Long b;
}
public class ClassObjectThree{
Long c;
Long d;
}
public class ClassObject{
private final ClassObjectTwo obj1;
private final ClassObjectTwo obj2;
private final ClassObjectTwo obj3;
private final Multimap<String, ClassObjectThree> obj4;
}
ClassObject classObj;
Gson gson = new Gson();
String jsonString = gson.toJson(classObj);
return jsonString;
JsonString 没有返回任何东西,如何定义对象的 Object 以转换为 JSON 字符串?
这里如何使用InstanceCreator?
【问题讨论】:
标签:
json
object
gson
multimap
【解决方案1】:
不完全确定,这里的问题是什么,当你说它没有返回任何东西时。尝试使用 GsonBuilder。
您可以使用 - GsonBuilder,并启用 complexMapKeySerialization,如下所示。
Gson gson = new GsonBuilder().registerTypeAdapter(Instant.class, new InstantConverter()).enableComplexMapKeySerialization()
.setPrettyPrinting().create();
由于 Gson 使用 toString() 方法来形成 JSON,请务必使用它们。
public class ClassObject{
private final ClassObjectTwo obj1;
private final ClassObjectTwo obj2;
private final ClassObjectTwo obj3;
private final Multimap<String, ClassObjectThree> obj4;
@Override
public String toString() {
return new ToStringBuilder(this)
.append("obj1", obj1)
.append("obj2", obj2)
.append("obj3", obj3)
.append("obj4", obj4)
.toString();
}
}