我试图形成这种类型的jsonarray
.
[
{
"userIdentity":"bbb",
"admin":true/false
},
{
"userIdentity":"bbb",
"admin":true/false
}
.
.
.
]
我在 android 中使用了这段代码,从hashmap
toAdd 提供输入:
JSONObject inerobj=new JSONObject();
JSONArray jsonarray=new JSONArray();
for (String s : toAdd.keySet()) {
// Log.d("userid",s);
inerobj.put("userIdentity", s);
inerobj.put("admin", Boolean.parseBoolean(toAdd.get(s)));
Log.d("inerobj.toString",inerobj.toString());
jsonarray.put(inerobj);
Log.d("jsonarray.toString",jsonarray.toString());
}
toAdd 的哈希图有:
towhid37:value=true
towhid32:value=true
在inerobj
值是好的。但是当附加inerobj
到 jsonarray 时,它添加了第一个value(towhid37)
好的。bt 当它放置第二个时,它value(towhid32)
也替换了第一个值,即数组的第一个元素现在变为(towhid32)。
继承Logcat输出:
05-20 12:20:43.968: D/inerobj.toString(3788): {"admin":true,"userIdentity":"towhid37"}
05-20 12:20:43.988: D/jsonarray.toString(3788): [{"admin":true,"userIdentity":"towhid37"}]
05-20 12:20:43.988: D/inerobj.toString(3788): {"admin":true,"userIdentity":"towhid32"}
05-20 12:20:44.038: D/jsonarray.toString(3788): [{"admin":true,"userIdentity":"towhid32"},{"admin":true,"userIdentity":"towhid32"}]
这里有什么问题?