当前位置: 首页 > 面试题库 >

JSON添加到JSONArray问题

薛淳
2023-03-14
问题内容

大家好,我不是Json最好的。我试图通过循环将一些json对象添加到json数组中,但是问题是每次涉及到循环时,新数据也会遍历数组中的先前数据。这是我的代码:

JSONObject jsonObj = new JSONObject();
JSONArray jsonArray = new JSONArray();
if(X.size() > 0)
{
  for (int j = 0; j < X.size(); j++)
   {
    zBean aBean = (zBean)X.get(j);
    jsonObj.put(ID,newInteger(aBean.getId()));
    jsonObj.put(NAME,aBean.getName());
    jsonArray.add(jsonObj);
   }
}

给定X.size = 2的示例

when j=0
jsonObj => {"Name":"name1","Id":1000}
jsonArray => [{"Name":"name1","Id":1000}]

when j = 1
jsonObj => {"Name":"name2","Id":1001}
jsonArray => [{"Name":"name2","Id":1001},{"Name":"name2","Id":1001}]

我希望我的例子足够清楚。

如果有人能在这里帮助我,我将不胜感激。


问题答案:

您需要jsonObj在循环的每次迭代中创建一个新的引用:

for (int j = 0; j < X.size(); j++)
 {
  zBean aBean = (zBean)X.get(j);
  jsonObj = new JSONObject();
//^^^^^^^^^^^^^^^^^^^^^^^^^^^ add this line
  jsonObj.put(ID,newInteger(aBean.getId()));
  jsonObj.put(NAME,aBean.getName());
  jsonArray.add(jsonObj);
 }

否则,您将一遍又一遍地更新同一实例,并将对同一对象的引用多次添加到数组中。由于它们都是相同的引用,因此对其中一个的更改会影响数组中的所有它们。



 类似资料:
  • 问题内容: 我今天在这个主题上搜索了很多。但是我找不到它,如何将JSONArray添加到JSONObject? 因为每次执行此操作都会收到此错误:Stackoverflow 我收到此错误: 我想要的JSON:只有最后一个JsonArray出问题了: ,“ vloer”:[{formaat:’vierkant10x15’tegels:[{naam:’‘,imgThumb:’/bla/bla.png’

  • 当我添加测试JsonObject列表时,只有最后一个JsonObject被添加到JsonArray。我不明白为什么,因为我遵循oracle的留档。https://docs.oracle.com/javaee/7/api/javax/json/JsonArray.html 名为TestRun的类中的方法 Main(注意:我使用faker生成随机信息)

  • 问题内容: 我有一个带有一些数组的JSON文件。我想遍历文件数组并获取它们的元素和它们的值。 这是我的文件的样子: 这是我走了多远: 是否可以做这样的事情? 我要这样做的原因是因为文件中的数组具有不同数量的元素。 问题答案: 更改 至 或者 取决于您使用的是JSON到/来自Java的库。(看起来将为您工作。) 然后,要访问“对象”中的字符串元素,请按元素名称将其取出。 如果需要中的元素名称,则可以

  • 介绍 在JSON中,JSONArray代表一个数组,使用中括号包围,每个元素使用逗号隔开。一个JSONArray类似于这样: ["value1","value2","value3"] 使用 创建 //方法1 JSONArray array = JSONUtil.createArray(); //方法2 JSONArray array = new JSONArray(); array.add("

  • 我正在创建一个TicTacToe游戏。我把所有带有ActionListeners的后端放在按钮上,将按钮添加到面板,设置框架等等。 然而,当我运行程序时,我的JPanel似乎没有添加到JFrame中。我试过使用不同的布局,仔细检查是否确实放置了。为所有内容添加行,之前的所有帖子似乎都指向了我认为已经涵盖的内容。 如果这真的很直接,我提前道歉。 谢谢你的帮助。

  • 嗨,我是solr的新手,正在尝试添加一个自定义的JSON,我关注的链接是https://cwiki.apache.org/confluence/display/solr/transforming+and+indexing+custom+json。首先,我使用下面的命令创建了一个核心。solr create-c my_collection-d data_driven_schema_configs。之