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