1.JSONObject.getString(key) 当value为null时 sf.json会解析成'null'字符串。fastjson会解析成null对象
2.fastjson 反序列化成数组,空值丢掉了
如https://github.com/alibaba/fastjson/issues/2841
曲线救国一把 将 为空的默认给null填充
,,,{},,{},
/**
* string字符串遍历填充
**/
public static String ToInitStringNullComplement(String data){
StringBuffer sb= new StringBuffer();
char c1 = ',';
String c2 = "null";
if(data ==null)
return sb.toString();
if(data.length()==0)
return sb.toString();
Field field = null;
try {
field = String.class.getDeclaredField("value");
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
field.setAccessible(true);
char[] chars = new char[0];
try {
chars = (char[]) field.get(data);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
for (int i = 0, n = chars.length; i < n; i++){
boolean flag=true;
if(i==0&&chars[i]==c1){
sb.append(c2).append(chars[i]);
flag=false;
}
if(i<chars.length-1&&chars[i]==c1&&chars[i+1]==c1){
sb.append(chars[i]).append(c2);
flag=false;
}
if(i==chars.length-1&&chars[i]==c1){
sb.append(chars[i]).append(c2);
flag=false;
}
if(flag){
sb.append(chars[i]);
}
}
return sb.toString();
}
没有评论