字符串(类似这种有null值的“{“xx”:”xxx”,”aa”:null}”)转换成JSONObject不会出现问题,但是value属性为null的JSONObject或者Object转换成字符串时,对应value=null的key会消失:
当字符串是 "{xxxx…“xxxx”:{xxxxxx…“xx”:null,xxxxx…},xxxxx…}“这样的情况转换成”[“xxx:xxx”,“xxx:xxxxx”,“xxxxx”…]"这种情况时,最外层字符串转换成JSONObject格式没问题,但里层的{}包裹的对象转换JSONObject会出问题,value为null的key会消失。
这时可以用反射,当然要准备好一个对应{}内部对象的实体类,封装一下,然后通过反射得到全部的字段名,在循环挨个把字段名当做key,通过key找到value,赋值到自己建的List集合中,结束。
这里Object转换成string,用String.valueOf(),有些key会消失。
这是弃用的写的,因为得到的key得不全!
反射得到类的属性名(字段名)用到的方法:
//反射类的所有属性名
public static String[] getFiledName(Object o) {
//获得所有字段,无论private public protected
Field[] fields = o.getClass().getDeclaredFields();
//字段名放在这
String[] fieldNamStrings = new String[fields.length];
for (int i = 0; i < fieldNamStrings.length; i++) {
//一个一个getName找到属性名
fieldNamStrings[i] = fields[i].getName();
}
return fieldNamStrings;
}
当然,也可以反射得到value。
本文地址:https://blog.csdn.net/yanshenguiyi/article/details/109954726
您可能感兴趣的文章:
- vue init初始化项目后 npm run dev报错 10% building modules 1/1 modules 0 activeevents
- axios 处理 302 状态码的解决方法
- [Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/feature
- react-native 在新版Xcode(10+)中运行出现的问题: node_modules/react-native/third-party/glog-0.3.4 , C compiler cannot create executables
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
网友评论