我不能使用任何第三方库,所以我在主题行中提到了这一点。此行引发异常。obj.put("CanonicalName", data.getItemname());
我有一份EntityData type
的清单。EntityData
是POJO,它有两列,分别带有getter setter和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]]
所以文件包含CCD_ 5和CCD_。我需要用下面的格式写列表数据。
{
"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)
我不知道该怎么办。我不能使用任何第三方图书馆。我只能使用oracle的java库。基本上我不知道如何创建JsonObject的对象并将数据插入其中。如果有其他可用的java库,请帮助。
在JsonArray中添加时尝试创建新的JsonObject,并创建一个根对象来添加3种类型的操作数据数组
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":
JsonObject obj1 = JsonObject.EMPTY_JSON_OBJECT;
obj1.put("CanonicalName", data.getItemname() );
delete.add(obj1);
break;
case "update":
JsonObject obj2 = JsonObject.EMPTY_JSON_OBJECT;
obj2.put("CanonicalName", data.getItemname() );
modify.add(obj2);
break;
case "add":
JsonObject obj3 = JsonObject.EMPTY_JSON_OBJECT;
obj3.put("CanonicalName", data.getItemname() );
add.add(obj3);
break;
default:
break;
}
}
JsonObject rootObj = JsonObject.EMPTY_JSON_OBJECT;
rootObj.put("delete", delete);
rootObj.put("update", modify);
rootObj.put("add", add);