遍历JSONArray数组想要修改里面的一个value,却一直没法成功。
使用变量修改后直接覆盖当前遍历的 JSONObject对象 能够成功修改了
按理说直接如下的写法应该是对的
JSONArray feedetailList = data.getJSONArray("feedetailList");
for (int i = 0; i < feedetailList.size(); i++) {
feedetailList.getJSONObject(i).put("psnNo",data.getString("psnNo"));
}
————————————————
版权声明:本文为优快云博主「lskisme」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_31255557/article/details/130098659
之前的代码 就如上面的写法一样 使用了put方法
JSONArray field = form.getField();
for (int i = 0; i < field.size(); i++) {
if (field.getJSONObject(i).get("field_id").equals(fid)) {
//在这里修改
field.getJSONObject(i).put("field_name",jsonObject.getString("fieldName"));
//输出还是修改前的
logger.info(field.getJSONObject(i).toJSONString());
}
}
修改后的
JSONArray field = form.getField();
for (int i = 0; i < field.size(); i++) {
//赋值给变量
JSONObject item = field.getJSONObject(i);
if (item.get("field_id").equals(fid)) {
//修改变量
item.put("field_name",jsonObject.getString("fieldName"));
//重新放回去
field.set(i,item);
}
}
应该是类似于传形参和实参的区别 修改之后需要返回