因为数据是"{key:value,key:value},{},{},{}....","{},{},{},{}....","{},{},{},{}....",
所以如果想将jsonarray中的每一组数据转换成list那么就要在字符串两边拼接上[]
变成这样:"[{key:value,key:value},{},{},{}....]","[{},{},{},{}....]","[{},{},{},{}....]",
之后再对字符串进行移除操作,正常来讲,如果{}中的value符合数据类型格式的话,如果我们不想要,实体类中不添加此key对应的属性即可,但是如果数据有问题,就算实体里面不添加此属性,转换的时候还是会出现问题,那么就需要移除掉。
if (o1 instanceof JSONArray) {
JSONArray o11 = (JSONArray) o1;
ArrayList<JSON120bject> arrs = new ArrayList<>();
for (Object o : o11) {
String s = "["+ o + "}]";
StringBuilder newStr = new StringBuilder();
while (s.contains("要移除的字段")) {
int begin = s.indexOf("要移除的字段");
String front = s.substring(0, begin);
//如果不做下方三行操作,就会进入死循环且end<begin
newStr.append(front).append("移除字段的下一个字段");
int end = s.indexOf("移除字段的下一个字段");
end+=移除字段的下一个字段字符个数;
s = s.substring(end);
}
newStr.append(s);
List<JSON120bject> userList = JSON.parseArray(newStr.toString(), JSON120bject.class);
arrs.addAll(userList);
}
return Result.ok(arrs);
}
转换实体类
@Data
public class JSON120bject {
private Object name;
private Object version;
....
}