8
こんにちはすべて私はJsonで一番良いとは言えません。私はループを介してjson配列にいくつかのjsonオブジェクトを追加しようとしていましたが、問題はループになるたびに新しいデータで配列内の以前のデータを乗り越えることです。ここに私のコードは次のとおりです。X.size = 2与えられたJSON add to JSONArray issue
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);
}
}
例:
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}]
私は私の例では、十分に明確であると思います。
誰でも私をここで助けることができたら感謝します。そうしないとあなたが何度も何度も何度も同じインスタンスを更新し、同じオブジェクトへの参照を追加している
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);
}
:あなたは、ループの各反復で新しいjsonObj
参照を作成する必要が
ありがとう、私の問題を解決しました。 – ComeRun
これを回答としてお願いします;) – Ayyoub
@ComeRun:これを回答としてマークして、人々が一目で分かるようにしてください。 – ofey