我尝试将具有多个属性的Object转换为Json,以将其放入MongoDB。到目前为止,它可以与简单的属性(例如字符串或整数)一起使用。由于我尝试将侦听器添加到对象,因此无法将侦听器数组添加到对象。数组为空。
我看到该对象已正确创建: 您在这里看到https://i.imgur.com/ZhYWhpS.jpg
但是当我使用Gson的“ toJson”方法时,转换无法正常工作。
您在这里看到: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);
}