【问题标题】:How to clear a JSONArray如何清除 JSONArray
【发布时间】:2012-12-11 11:40:44
【问题描述】:

如何清除 JSONArray

中的数据

没有什么像:

jsonArray.clear();

甚至没有:

jsonArray.remove(index);

这里建议:

How do I remove a specific element from a JSONArray?

谢谢

【问题讨论】:

标签: java android json


【解决方案1】:
jsonArray = new JSONArray(new ArrayList<String>());

【讨论】:

  • 您似乎有一个自信的答案,但我很好奇 - 这会导致每次新的 JSONArray 副本都未使用吗?类似于为 String 变量设置新值?
  • 这就像建议通过执行 list = new ArrayList(); 来清除 List 对象
【解决方案2】:

这不是一个完美的答案,但你可以这样做,

jsonArray=new jsonArray("[{}]");

编辑

根据评论中的建议,您也可以使用以下代码:

jsonArray=new jsonArray();

【讨论】:

  • 为什么不只是new JSONArray()
【解决方案3】:

刚做了局部变量

JSONArray jsonArray = new JSONArray();
jsonArray.put(productlist);

每次使用本地块添加 jsonserver 数据时,如果您取消全局块,则需要清除 jsonarray

【讨论】:

    【解决方案4】:

    在我拥有的库中,似乎没有任何方法可以调用JSONObject 内部的私有ArrayListclear()。但是它确实有public Object remove(int index)。我只是在使用new JSONObject() :(

    【讨论】:

      【解决方案5】:

      我尝试了所有方法,但唯一对我有用的是

      jsonArray.clear();
      
      or you can make it local variable again
      
      JSONArray jsonArray = new JSONArray();
      

      【讨论】:

        【解决方案6】:

        我不认为“new JSONArray()”是一个好的解决方案。

        有时您需要从内部类中访问 JSONArray 对象,因此您必须将 JSONArray 对象声明为 final,然后您不能再将其分配给新对象。

        最好的办法是循环删除它的元素。

        while(myjsonarray.length()>0)
        {
            myjsonarray.remove(0);
        }
        

        你说“没有什么像 jsonArray.remove(index);”,并且还用“java”、“android”标记了这个问题

        但是现在我用的是Android Studio 3.6.3,JSONArray类有这个方法,你也可以在Android Studio official documents找到。因此,我想您应该编辑问题的标题,例如“为什么我的 android studio 没有 JSONArray 类的完整方法”

        【讨论】:

        • 调用删除需要最低 API 级别 19
        【解决方案7】:

        jsonArray.clear(); 这对我有用。我使用的是 org.json(不是 org.json.simple)库中的 JSONArray。

        【讨论】:

          【解决方案8】:

          您需要在 JSONArray 的长度上运行一个 while 循环,并且每次都删除第一个索引。当 JSONArray 的长度为零时,循环将到达一个阶段,以表明 JSONArray 不为空并被清除。

          while (optionArray.length() > 0) {
                      optionArray.remove(0)
              }
          

          【讨论】:

          • 这与this other answer中的解决方案相同。
          • 您可能的意思是“...显示 JSONArray 为空且已清除。”
          【解决方案9】:

          这是一个答案,请尝试一下:

          jsonArray=[]
          

          【讨论】:

            猜你喜欢
            • 2012-09-25
            • 1970-01-01
            • 2012-02-03
            • 1970-01-01
            • 2012-02-07
            • 2014-01-08
            • 2017-05-18
            • 2020-03-11
            • 2011-12-24
            相关资源
            最近更新 更多