Gson.toJson не может конвертировать ArrayList в объект (ArrayList = null) - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь преобразовать Объект с несколькими атрибутами в Json, чтобы поместить его в MongoDB.До сих пор он работал с такими легкими атрибутами, как Strings или Integer.Поскольку я пытаюсь добавить слушатель к объекту, не получается добавить массив слушателя к объекту.Массив имеет значение null.

Я вижу, что объект создан правильно: вы видите здесь https://i.imgur.com/ZhYWhpS.jpg

Но когда я использую метод "toJson" из Gson, преобразование не работает должным образом.

вы видите здесь: https://i.imgur.com/ESNBVow.jpg

Проблема в том, что массив является приватным?Но eFlag (созданный EMF) также работает для преобразования и не является нулевым.

        LightBulb newLightBulb = HomeapiFactory.eINSTANCE.createLightBulb();

                    newLightBulb.setDeviceID(deviceid);
        newLightBulb.setDeviceName(devicename);
        newLightBulb.setDeviceType(DeviceType.LAMP);
        newLightBulb.setBrightness(100);
        newLightBulb.setBatteryLevel(100);
        newLightBulb.setFirmware("1.0");

        listener.addListenerOLD(newLightBulb);

        json = gson.toJson(newLightBulb);
        Document doc = Document.parse(json.toString());
        collection.insertOne(doc);
        System.out.println("New Lamp was added to the DB");

Метод добавления слушателя к объекту:

public void addListenerOLD(EObject o) // deprecated
{
    Adapter adapter = new AdapterImpl() {
        public void notifyChanged(Notification notification) {
            System.out.println("DeviceState Changed");

        }
    };
    o.eAdapters().add(adapter);
}
...