Конвертировать несколько Java Beans в JSON - PullRequest
0 голосов
/ 26 января 2019

У меня есть несколько классов Java-бинов, которые связаны друг с другом (JSON Array + JSON Object), поскольку они имеют вложенную структуру. Есть около 10 классов. Есть ли способ коллективно преобразовать эти классы или хотя бы один за другим? Я создал эти классы из данных JSON, к которым у меня сейчас нет доступа. Итак, теперь я с нетерпением жду создания фиктивного JSON из этих классов. Используя GSON, я попытался преобразовать один из этих классов Бинов, однако я получил пустой результат. Вот один из бобов под названием Attachment.java.

Attachment.java

package mypackagename;

import java.io.Serializable;

public class Attachment  implements Serializable{


    private Payload payload;

    private String type;

    public Payload getPayload() {
        return payload;
    }

    public void setPayload(Payload payload) {
        this.payload = payload;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}

Осуществление

Gson gson = new Gson();
Attachment attachment = new Attachment();
String json = gson.toJson(attachment);

enter image description here

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Этот раздел Руководства пользователя Gson: https://sites.google.com/site/gson/gson-user-guide#TOC-Finer-Points-with-Objects

Четвертый пункт маркировки объясняет, как обрабатываются нулевые поля.

0 голосов
/ 26 января 2019

Конечно, вы получили пустой результат.Потому что ваш объект JSON пуст.Вы должны добавить данные к своему объекту и протестировать его снова, как показано ниже:

Attachment attachment = new Attachment(new Payload("Test Payload"), "Test attachment");
String json = new Gson().toJson(attachment);
Log.e("Test", "Json: " + json); // result: Json: {"payload":{"test":"Test Payload"},"type":"Test attachment"}

Чтобы избежать пустого объекта, вы должны установить значение по умолчанию для вашего payload, и type, потому что Gson будет игнорировать любой нользначение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...