Я не могу использовать какие-либо сторонние библиотеки, поэтому упомянул в теме письма. эта строка генерирует исключение. obj.put("CanonicalName", data.getItemname());
У меня есть список EntityData type
. EntityData
- это POJO, который имеет 2 столбца с установщиком геттера и toString ..
public class EntityData {
private JsonValue itemname; //I can change datatype to String if it helps to reolve issue
private String operation;
}
мой список List<EntityData> dataList= new ArrayList<EntityData>();
, если я распечатываю sout (dataList), то ниже мои данные. он вызывает toString.
[EntityData [itemname="Apple Computers", operation=add], EntityData [itemname="Infosys", operation=add], EntityData [itemname="Wipro", operation=add], EntityData [itemname="Google India", operation=update], EntityData [itemname="Amazon India", operation=update], EntityData [itemname="Capgemini", operation=add], EntityData [itemname="Cognizant", operation=add], EntityData [itemname="Cognizant", operation=delete]]
, поэтому файл содержит itemname
и operation(add,delete,update)
. Мне нужно записать данные списка в формате ниже.
{
"delete": [
{
"canonicalName": "TCS"
}
],
"update": [
{
"canonicalName": "Google India"
},
{
"canonicalName": "Amazon India"
}
],
"add": [
{
"canonicalName": "Apple Computers"
},
{
"canonicalName": "Infosys"
},
{
"canonicalName": "Wipro"
},
{
"canonicalName": "Capgemini"
},
{
"canonicalName": "Cognizant"
}
]
}
Я писал ниже код, но получаю сообщение об ошибке.
JsonObject obj = JsonObject.EMPTY_JSON_OBJECT;
JsonArray delete= JsonArray.EMPTY_JSON_ARRAY;
JsonArray modify= JsonArray.EMPTY_JSON_ARRAY;
JsonArray add= JsonArray.EMPTY_JSON_ARRAY;
for(EntityData data:dataList)
{
switch(data.getOperation())
{
case "delete":
obj.put("CanonicalName", data.getItemname() );
delete.add(obj);
break;
case "update":
obj.put("CanonicalName", data.getItemname() );
modify.add(obj);
break;
case "add":
obj.put("CanonicalName", data.getItemname() );
add.add(obj);
break;
default:
break;
}
}
System.out.println(obj);
Выдает исключение ниже
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractMap.put(Unknown Source)
at com.shruti.jdbc.ReadData.main(ReadData.java:86)
. Я не знаю, как с этим справиться. Я не могу использовать сторонние библиотеки. Мне нужно использовать только java библиотеки из oracle. в основном я не знаю, как создать объект JsonObject и вставить в него данные. Если доступна какая-либо другая библиотека java, просьба помочь.