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

2022-07-21 10:17:44

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

  • 作者:金斗潼关
  • 原文链接:https://blog.csdn.net/weixin_42032770/article/details/122458550
    更新时间:2022-07-21 10:17:44