薄荷加冰丶
2019-08-20 10:52
采纳率: 80%
浏览 480

关于List<Map>与json转化的问题,求大神提点解决方案;

1.查询数据库,直接返回List < map >格式,然后发现数据库中为空的数据,没有返回;

//我查了20个字段,但为空的字段,就没返回回来,只返回了有数据的字段
List<Map<String, Object>> normList = syncTitsmDataService.getNormDatas(sql);

2.List< Map < String,Object>>转json后,出现反斜杠问题;

map中的Object类型使用SerializerFeature无法去除;

如果返回Obj类型就没有反斜杠,但是最好是返回Str类型;

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • BestwishesTolover 2019-08-21 14:34
    已采纳

    public static String toJson(Object target){
    //空对象
    if(target == null){
    return "null";
    }

    //字符串
    if(target instanceof String){
    return "\""+removeSpecial((String)target)+"\"";
    }
    //整数
    if(target instanceof Integer){
    return String.valueOf(target);
    }
    //布尔值
    if(target instanceof Boolean){
    return String.valueOf(target);
    }
    //日期类型
    if(target instanceof Date){
    return "\""+DateUtil.format((Date)target)+"\"";
    }

    //数字类型
    if(target instanceof Number){
    return String.valueOf(target);
    }

    //object
    if(target instanceof Object){
    return String.valueOf(target);
    }
    //其他
    return "\"\"";
    }
    对map的value进行特殊匹配处理,上面为工具方法

    打赏 评论
  • dabocaiqq 2019-08-20 11:01
    打赏 评论
  • tkzc_shark 2019-08-20 12:17

    字符串中有双引号必须有反斜杠转义,前台取值时不会展示的。不知道你的具体需求是什么

    打赏 评论

相关推荐 更多相似问题