java中json字符串与实体类对象相互转换


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转成类对象


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM