Object或者JSONObject转string,value为null时,key会消失
字符串(类似这种有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
下一篇: Java函数中的可变参数