我有一个JsonArray,如下所示:
"fields" : [
{
"name":"First Name",
"id":1
},
{
"name":"Middle Name",
"id":2
},
{
"name":"Last Name",
"id":3
}
]
我想从上面的JsonArray中删除第二个JsonObject。为了做到这一点,我编写了以下代码:
JsonArray fieldsObject =jsonObject.getJsonArray("fields");
fieldsObject.remove(fieldsObject.getJsonObject(2));
但第二行抛出错误:java.lang.UnsupportedOperationException
有什么方法可以从JsonArray中删除JsonObject吗?
4条答案
按热度按时间p4rjhz4m1#
无法从
JsonArray
中删除元素,因为它不支持remove()
方法:而
remove()
方法的实现来源于AbstractList
:相反,为什么不创建一个单独的数据结构数组或列表来保存你想要的对象呢?
顺便说一下,使用
JsonArray
的目的是以对象形式加载json数据,这就是为什么它支持read方法,但不支持对加载的数据结构进行修改。bttbmeg02#
可能是您的
JsonElement
或JSONArray
为空。getJsonObject
返回一个JSONObject
。删除方法需要int
。UnsupportedOperationException
(如果不支持删除)。试试这个:
或
并将结果分配给原始结果
fhity93d3#
gson
库删除
gson
库版本2.3.1
的作品输出:
org.json
库删除
org.json
库的作品输出:
blpfk2vs4#
我尝试使用Sanj在上面的帖子中提到的org.json库。我们可以从JSONArray中删除元素,如下所示。我将json内容放在.txt文件中,并读入String对象以构造JSONObject。请参考下面的代码。