Java JSON添加到JSONArray问题
大家好,我不是Json的高手。我试图通过循环将一些json对象添加到json数组中,但问题是每次它进入循环时,新数据都会覆盖数组中以前的数据。这是我的密码:Java JSON添加到JSONArray问题,java,json,Java,Json,大家好,我不是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
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);
}
}
我希望我的例子足够清楚
如果有人能在这里帮助我,我将不胜感激。您需要在循环的每次迭代中创建一个新的
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);
}
for(int j=0;j
否则,您将一次又一次地更新同一实例,并将对同一对象的引用多次添加到数组中。因为它们都是相同的引用,所以对其中一个的更改会影响数组中的所有引用。虽然每次循环运行时我都创建了一个新的JSONObject,但仍然存在相同的问题。因此,我所做的是创建了一个JSONObject的
列表
,每次循环运行时,我都向列表中添加一条新记录,并每次更新该记录。在for循环的最后,我根据列表输入JSONArray
JSONArray jsonArray = new JSONArray();
List<JSONObject> myList = new ArrayList()<>;
if(X.size() > 0)
{
for (int j = 0; j < X.size(); j++)
{
myList.add(new JSONObject());
zBean aBean = (zBean)X.get(
myList.get(j).put(ID,newInteger(aBean.getId()));
myList.get(j).put(NAME,aBean.
}
for(int j = 0; j < myList.size(); j++)
jsonArray.add(myList.get(j));
}
JSONArray-JSONArray=new-JSONArray();
List myList=new ArrayList();
如果(X.size()>0)
{
对于(int j=0;j
以下内容将json obj添加到json数组中
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray();
int i = 0;
while(i < 3)
{
JSONObject jsonObj = new JSONObject();
jsonObj.put("Name","Random"+i);
jsonObj.put("ID", i);
jsonArray.put(jsonObj); //jsonObj will be pushed into jsonArray
i++;
}
System.out.println("jsonArray : "+ jsonArray);
}
.pom具有以下依赖项
<dependencies>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
</dependencies>
org.json
json
20180813
com.google.code.gson
格森
2.8.6
jsonArray : [{"ID":0,"Name":"Random0"},{"ID":1,"Name":"Random1"},{"ID":2,"Name":"Random2"}]
<dependencies>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
</dependencies>