从 json 数组中删除 json 对象

TDH*_*DHM 5 java json

我有一个像这样的 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 吗?

Ben*_*min 0

可能是您的JsonElementJSONArray为空。

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)