欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Object或者JSONObject转string,value为null时,key会消失

程序员文章站 2022-03-16 14:52:08
字符串(类似这种有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格式没问题,但里层的{}...

字符串(类似这种有null值的“{“xx”:”xxx”,”aa”:null}”)转换成JSONObject不会出现问题,但是value属性为null的JSONObject或者Object转换成字符串时,对应value=null的key会消失:

Object或者JSONObject转string,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得不全!
Object或者JSONObject转string,value为null时,key会消失

反射得到类的属性名(字段名)用到的方法:
Object或者JSONObject转string,value为null时,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