我有一个像这样的 JsonArray:
"fields" : [
{
"name":"First Name",
"id":1
},
{
"name":"Middle Name",
"id":2
},
{
"name":"Last Name",
"id":3
}
]
Run Code Online (Sandbox Code Playgroud)
我想从上面的 JsonArray 中删除第二个 JsonObject。为了做到这一点,我编写了以下代码:
JsonArray fieldsObject =jsonObject.getJsonArray("fields");
fieldsObject.remove(fieldsObject.getJsonObject(2));
Run Code Online (Sandbox Code Playgroud)
但第二行抛出错误:java.lang.UnsupportedOperationException
有什么办法可以从 JsonArray 中删除 JsonObject 吗?
可能是您的JsonElement或JSONArray为空。
getJsonObject返回一个JSONObject. 删除方法想要int。
UnsupportedOperationException
如果不支持删除。
尝试这个 :
JSONArray fieldsObject =jsonObject.getJsonArray("fields");
fieldsObject.remove(int index);
Run Code Online (Sandbox Code Playgroud)
或者
JSONArray result = new JSONArray();
for(int i=0;i<fieldsObject.length();i++)
{
if(i!=2)
{
result.put(fieldsObject.get(i));
}
}
Run Code Online (Sandbox Code Playgroud)
并将结果分配给原始结果
fieldsObject=result;
Run Code Online (Sandbox Code Playgroud)