自定义SQL获取MAP转换成json怎么会把int类型字段转成了true/false?

发布于 2021-11-21 21:05:36 字数 859 浏览 839 评论 3

    public <T> String listPageJsonSql(Dao dao, Sql sql, int curPage, int pageSize, int count) {
        Pager pager = dao.createPager(curPage, pageSize);
        pager.setRecordCount(count);// 记录数需手动设置
        sql.setPager(pager);
        sql.setCallback(Sqls.callback.records());
        dao.execute(sql);
        Map<String, Object> jsonobj = new HashMap<String, Object>();
        jsonobj.put("total", pager.getRecordCount());
        jsonobj.put("rows", sql.getList(Map.class));
        return Json.toJson(jsonobj);

    }

int类型,转出JSON字符串,全变成了true/false...悲催

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

悸初 2021-11-25 09:14:19

哦no!!tinyint(1) 可以存0到9啊!!

执手闯天涯 2021-11-25 06:15:51

List<Record> records = Sqls.create("").getList(Record.class);
List<Map<String, Object>> maps = new ArrayList<Map<String, Object>>(records.size());
for (Record record : records) {
  Map<String, Object> map = new HashMap<String, Object>();
    for (Entry<String, Object> en : record.entrySet()) {
      if (record.getSqlType(en.getKey()) == Types.TINYINT)
            map.put(en.getKey(), ((Number)en.getValue()).intValue() != 0);
      else
            map.put(en.getKey(), en.getValue());
    }
    maps.add(map);
}

尐偏执 2021-11-23 00:36:16

因为取出来的就是0/1, 跟toJson没关系

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文