java中在JSONArray首位插入JSONObject
在网上找了很多都没找到每条JSONObject数据都插入在JSONArray的第一位的方法.
比如现有一条JSONArray
[{id:"123",name:"小王"}]
我 put 一条{id:“456”,name:“小鱼”}结果是
[{id:"123",name:"小王"},{id:"456",name:"小鱼"}]
这不是我要的数据,我需要的是
[{id:"456",name:"小鱼"},{id:"123",name:"小王"}]
于是,
自己凭着菜鸟逻辑动手写了一个
try {
boolean flag = true;
JSONObject d = null;
JSONObject d2 = null;
for(int i=0;i<=jsonArray.length();i++){
if(jsonArray.length() == i && i != 0){
//
}else{
if(i == 0){
if(jsonArray.length()>0){
d2 = jsonArray.getJSONObject(i);
}
jsonArray.put(i,jsonObject); //jsonObject是第一条json
}else{
if(flag){
d = jsonArray.getJSONObject(i);
jsonArray.put(i,d2);
flag = false;
}else{
d2 = jsonArray.getJSONObject(i);
jsonArray.put(i,d);
flag = true;
}
}
}
}
if(flag){
if(d2!=null){
jsonArray.put(d2);
}
}else{
if(d!=null){
jsonArray.put(d);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
原理:
每有一条数据插入的时候会先保存到第一条JSONObject,
把保存的第一条数据替换到第二条JSONObject里面,
同时保存第二条JSONObject来替换掉第三条JSONObject,以此类推