Как преобразовать сложный объект в строку Json - PullRequest
0 голосов
/ 09 мая 2019

У меня определен следующий класс:

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 голосов
/ 09 мая 2019

Не совсем уверен, в чем проблема, когда вы говорите, это ничего не возвращает. Попробуйте использовать 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();
    }
  }
...