首先,出现 “ r e f " : " ref": " ref":".data[0].list[0]”,就是因为遍历时出现了引用,又重复的内容。网上有很多的解决办法,但是,不一定适用,我这里做出我自己遇到的问题。
String bind_info = TypesUtil.asString(bind.get("bindinfo"));
JSONObject bindinfo = JSONObject.parseObject(bind_info);
Map<String, Object> info = new HashMap<>();
if (bindinfo != null) {
for (Object key : bindinfo.keySet()) {
String keyvalue = TypesUtil.asString(bindinfo.get(key));
if (StringUtil.isNotEmpty(keyvalue)) {
info.put("name", TypesUtil.asString(name));
info.put("value", keyvalue);
list.add(info);
}
}
}
看第一张图片,第三行是我new map的地方,这个就是问题所在,看图2
String bind_info = TypesUtil.asString(bind.get("bindinfo"));
JSONObject bindinfo = JSONObject.parseObject(bind_info);
if (bindinfo != null) {
for (Object key : bindinfo.keySet()) {
Map<String, Object> info = new HashMap<>();
String keyvalue = TypesUtil.asString(bindinfo.get(key));
if (StringUtil.isNotEmpty(keyvalue)) {
info.put("name", TypesUtil.asString(name));
info.put("value", keyvalue);
list.add(info);
}
}
}
原因是:每次循环的时候,会往list中添加一个map,但是这个时候如果map在循环外创建,则每次往list添加时会出现异常
将创建map放在循环中,这样子就不会出现"
r
e
f
"
:
"
ref": "
ref":".data[0].list[0]"了
是当时出现的一个低级错误,文档仅作记录。