如何将复杂的对象转换为Json字符串

时间:2019-05-08 21:20:04

标签: json object gson multimap

我定义了以下类:

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不返回任何内容,如何定义要转换为JSON字符串的对象的对象?

如何在此处使用InstanceCreator?

1 个答案:

答案 0 :(得分:0)

不确定,这里的问题是什么,当您说时,它什么也没返回。尝试使用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();
    }
  }