使用fastjson對JSON有决、實體類闸拿、列表轉(zhuǎn)換


layout: post
title: 使用fastjson對JSON、實體類书幕、列表轉(zhuǎn)換
subtitle: 使用fastjson對JSON新荤、實體類、列表轉(zhuǎn)換
date: 2018-11-3
author: LY
header-img: img/post-bg-debug.png
catalog: true
tags:
- java
- ajax
- JSON


在這里小小推薦下我的個人博客

csdn:雷園的csdn博客

個人博客:雷園的個人博客

簡書:雷園的簡書

某寶優(yōu)惠:優(yōu)惠網(wǎng)站

使用fastjson對JSON台汇、實體類苛骨、列表轉(zhuǎn)換

導(dǎo)入jar包或者使用maven添加依賴

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.49</version>
</dependency>

首先我們來寫一個帶有列表的實體類:

package com.entity;

import java.util.List;

public class Teacher {
    private String id;
    private String name;
    private String info;
    private List<Student> studentList;

    public static class Student {
        private String id;
        private String name;
        private String student_num;

        @Override
        public String toString() {
            return "Student{" +
                    "id='" + id + '\'' +
                    ", name='" + name + '\'' +
                    ", student_num='" + student_num + '\'' +
                    '}';
        }

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getStudent_num() {
            return student_num;
        }

        public void setStudent_num(String student_num) {
            this.student_num = student_num;
        }

        public Student(String id, String name, String student_num) {

            this.id = id;
            this.name = name;
            this.student_num = student_num;
        }
    }

    @Override
    public String toString() {
        return "Teacher{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", info='" + info + '\'' +
                ", studentList=" + studentList +
                '}';
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    public List<Student> getStudentList() {
        return studentList;
    }

    public void setStudentList(List<Student> studentList) {
        this.studentList = studentList;
    }

    public Teacher(String id, String name, String info, List<Student> studentList) {

        this.id = id;
        this.name = name;
        this.info = info;
        this.studentList = studentList;
    }
}

你收到的JSON數(shù)據(jù)格式如下

{
    "id":"1",
    "name":"your_name",
    "info":"你是一個好老師",
    "studentList":[
        {
            "id":"1",
            "name":"student_name1",
            "student_num":"134233721"
        },
        {
            "id":"2",
            "name":"student_name2",
            "student_num":"134233722"
        },
        {
            "id":"3",
            "name":"student_name3",
            "student_num":"134233723"
        },
        {
            "id":"4",
            "name":"student_name4",
            "student_num":"134233724"
        }
    ]
}

接下來進(jìn)行格式轉(zhuǎn)換

package com.controller;

import com.alibaba.fastjson.JSON;
import com.leiyuan.entity.Teacher;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/test")
public class TestController {

    /**
     * 在這里進(jìn)行轉(zhuǎn)換
     *
     * @param json 假設(shè)json為請求參數(shù)
     */
    @RequestMapping(value = "/transJson", method = RequestMethod.POST)
    public void transJson(@RequestBody String json) {
        System.out.println("原始數(shù)據(jù)==========" + json);
        // 轉(zhuǎn)化為teacher實體類
        Teacher teacher = JSON.parseObject(json, Teacher.class);
        System.out.println("轉(zhuǎn)換為teacher實體類==========" + teacher.toString());
        // 對teacher實體類中的studentList進(jìn)行轉(zhuǎn)換
    }
}

輸出結(jié)果如下

原始數(shù)據(jù)=========={
    "id":"1",
    "name":"your_name",
    "info":"你是一個好老師",
    "studentList":[
        {
            "id":"1",
            "name":"your_name",
            "student_num":"134233721"
        },  
        {
            "id":"2",
            "name":"your_name",
            "student_num":"134233722"
        },
                {
            "id":"3",
            "name":"your_name",
            "student_num":"134233723"
        },
                {
            "id":"4",
            "name":"your_name",
            "student_num":"134233724"
        }
    ]
}
轉(zhuǎn)換為teacher實體類==========Teacher{id='1', name='your_name', info='你是一個好老師', studentList=[Student{id='1', name='your_name', student_num='134233721'}, Student{id='2', name='your_name', student_num='134233722'}, Student{id='3', name='your_name', student_num='134233723'}, Student{id='4', name='your_name', student_num='134233724'}]}

如何將實體類轉(zhuǎn)換為JSON數(shù)據(jù)?

// 直接調(diào)用如下方法
JSON.toJSONString(your_class);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苟呐,一起剝皮案震驚了整個濱河市痒芝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掠抬,老刑警劉巖吼野,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異两波,居然都是意外死亡瞳步,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門腰奋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來单起,“玉大人,你說我怎么就攤上這事劣坊∴值梗” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵局冰,是天一觀的道長测蘑。 經(jīng)常有香客問我,道長康二,這世上最難降的妖魔是什么碳胳? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮沫勿,結(jié)果婚禮上挨约,老公的妹妹穿的比我還像新娘。我一直安慰自己产雹,他們只是感情好诫惭,可當(dāng)我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蔓挖,像睡著了一般夕土。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上时甚,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天隘弊,我揣著相機(jī)與錄音哈踱,去河邊找鬼。 笑死梨熙,一個胖子當(dāng)著我的面吹牛开镣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咽扇,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼邪财,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了质欲?” 一聲冷哼從身側(cè)響起树埠,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嘶伟,沒想到半個月后怎憋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡九昧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年绊袋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铸鹰。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡癌别,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹋笼,到底是詐尸還是另有隱情展姐,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布剖毯,位于F島的核電站圾笨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏逊谋。R本人自食惡果不足惜墅拭,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涣狗。 院中可真熱鬧,春花似錦舒憾、人聲如沸镀钓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丁溅。三九已至,卻和暖如春探遵,著一層夾襖步出監(jiān)牢的瞬間窟赏,已是汗流浹背妓柜。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留涯穷,地道東北人棍掐。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像拷况,于是被迫代替她去往敵國和親作煌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,176評論 25 707
  • 用兩張圖告訴你赚瘦,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料粟誓? 從這篇文章中你...
    hw1212閱讀 12,732評論 2 59
  • 在此特此聲明:一下所有鏈接均來自互聯(lián)網(wǎng),在此記錄下我的查閱學(xué)習(xí)歷程起意,感謝各位原創(chuàng)作者的無私奉獻(xiàn) 鹰服! 技術(shù)一點一點積...
    遠(yuǎn)航的移動開發(fā)歷程閱讀 11,124評論 12 197
  • 2017年11月15日,飄著雪花的天空揽咕、漫天飛舞的是我的心情悲酷,我收到了期盼已久的工作通知單。我和我的父輩們一樣心褐,也...
    淺流蘇閱讀 319評論 0 2
  • 一 沙場踏尸還舔涎,將軍歿朝堂。 何物比生死逗爹,莫測人心腸亡嫌。 二 絕壁生絕境,絕境成絕景掘而。 絕景斷絕情挟冠,絕情妙絕音。 三...
    家鄉(xiāng)桃花開了閱讀 381評論 1 3