1、问题描述

有一个需求是这样的,把实体类转为Json字符串存入redis中,然后再把redis中存放的实体类Json字符串插入数据库中。因此需要涉及到json字符串与实体类对象的相互转换。

2、产生原因

redis不支持直接存放java对象

因此需要用 JSON.toJSONString 把java对象转为json字符串。

3、解决方法

使用JSON.toJSONString 把java对象转为json字符串。

redisTemplate.opsForList().leftPushAll("notify:" + notifyMessageBO.getRecipienterId(), JSON.toJSONString(messageBO))

把json字符串转为java实体类对象

    @Test
    public void testJson() {
        List<Object> list = redisTemplate.opsForList().range("notify:102", 0, -1);
        System.out.println(list);
        for (Object o : list) {
            try {
                JSONObject jsonObject = new JSONObject().parseObject(o.toString());
                String title = jsonObject.getString("title");
                String htmlContent = jsonObject.getString("htmlContent");
                String beginTime = jsonObject.getString("beginTime");
                Integer canMarkProcessstate = Integer.parseInt(jsonObject.getString("canMarkProcessstate"));
                Integer processState = Integer.parseInt(jsonObject.getString("processState"));
                MessageBO messageBO = new MessageBO(title, htmlContent, beginTime, canMarkProcessstate, processState);
                System.out.println(messageBO);
            } catch (JSONException jsonException) {

            }
        }

    }

我使用的是阿里巴巴的fastjson

<dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson.version}</version>
            </dependency>

4、参考资料

后端自学——将Java对象转换成JSON_jinxlzc的博客-CSDN博客_java转json

json转对象_Angela_L的博客-CSDN博客_json转成类对象

GitHub 加速计划 / js / json
18
5
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:2 个月前 )
960b763e 5 个月前
8c391e04 8 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐