使用Fastjson實現JSON與JavaBean之間互相轉換

来源:https://www.cnblogs.com/yiidian/archive/2020/04/13/12689159.html
-Advertisement-
Play Games

原文鏈接:http://www.yiidian.com/fastjson/fastjson json javabean.html 1 簡單JSON與JavaBean的轉換 1.1 設計Student實體類 1.2 簡單JSON轉為JavaBean MainApp: 運行效果為: 1.3 JavaBe ...


原文鏈接:http://www.yiidian.com/fastjson/fastjson-json-javabean.html

1 簡單JSON與JavaBean的轉換

1.1 設計Student實體類

package com.yiidian.domain;

/**
 * 一點教程網 - http://www.yiidian.com
 */
public class Student {
    private String studentName;
    private Integer studentAge;

    public Student() {
    }

    public Student(String studentName, Integer studentAge) {
        this.studentName = studentName;
        this.studentAge = studentAge;
    }

    public String getStudentName() {
        return studentName;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    public Integer getStudentAge() {
        return studentAge;
    }

    public void setStudentAge(Integer studentAge) {
        this.studentAge = studentAge;
    }

    @Override
    public String toString() {
        return "Student{" +
                "studentName='" + studentName + '\'' +
                ", studentAge=" + studentAge +
                '}';
    }
}

1.2 簡單JSON轉為JavaBean

MainApp:

package com.yiidian.fastjson;

import com.alibaba.fastjson.JSONObject;
import com.yiidian.domain.Student;

/**
 * 一點教程網 - http://www.yiidian.com
 */
public class MainApp {

    public static void main(String args[]){
        String  JSON_OBJ_STR = "{\"studentName\":\"lily\",\"studentAge\":12}";

        Student student = JSONObject.parseObject(JSON_OBJ_STR, Student.class);

        System.out.println(student);
    }

}

運行效果為:

Student{studentName='lily', studentAge=12}

1.3 JavaBean轉為簡單JSON

MainApp:

package com.yiidian.fastjson;

import com.alibaba.fastjson.JSONObject;
import com.yiidian.domain.Student;

/**
 * 一點教程網 - http://www.yiidian.com
 */
public class MainApp {

    public static void main(String args[]){
        Student student = new Student("lily", 12);
        String jsonString = JSONObject.toJSONString(student);
        System.out.println(jsonString);
    }

}

運行效果為:

{"studentAge":12,"studentName":"lily"}

2 JSON數組與JavaBean的轉換

2.1 JSON數組轉為JavaBean

MainApp:

package com.yiidian.fastjson;

import com.alibaba.fastjson.JSONArray;
import com.yiidian.domain.Student;

import java.util.List;

/**
 * 一點教程網 - http://www.yiidian.com
 */
public class MainApp {

    public static void main(String args[]){

        String JSON_ARRAY_STR = "[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]";

        List<Student> studentList = JSONArray.parseArray(JSON_ARRAY_STR, Student.class);
        System.out.println("studentList:  " + studentList);
    }

}

運行結果為:

studentList:  [Student{studentName='lily', studentAge=12}, Student{studentName='lucy', studentAge=15}]

2.2 JavaBean轉為JSON數組

MainApp:

package com.yiidian.fastjson;

import com.alibaba.fastjson.JSONArray;
import com.yiidian.domain.Student;

import java.util.ArrayList;
import java.util.List;

/**
 * 一點教程網 - http://www.yiidian.com
 */
public class MainApp {

    public static void main(String args[]){

        Student student = new Student("lily", 12);
        Student studenttwo = new Student("lucy", 15);

        List<Student> students = new ArrayList<Student>();
        students.add(student);
        students.add(studenttwo);

        String jsonString = JSONArray.toJSONString(students);
        System.out.println(jsonString);
    }

}

運行效果為:

[{"studentAge":12,"studentName":"lily"},{"studentAge":15,"studentName":"lucy"}]

3 複雜JSON與JavaBean的轉換

3.1 設計Course實體類

package com.yiidian.domain;

import java.util.List;

/**
 * 一點教程網 - http://www.yiidian.com
 */
public class Course {
    private String courseName;
    private String code;

    public String getCourseName() {
        return courseName;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    @Override
    public String toString() {
        return "Course{" +
                "courseName='" + courseName + '\'' +
                ", code='" + code + '\'' +
                '}';
    }
}

3.2 設計Teacher實體類

package com.yiidian.domain;

import java.util.List;

/**
 * 一點教程網 - http://www.yiidian.com
 */
public class Teacher {
    private String teacherName;
    private Integer teacherAge;

    private Course course;
    private List<Student> students;

    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public Integer getTeacherAge() {
        return teacherAge;
    }

    public void setTeacherAge(Integer teacherAge) {
        this.teacherAge = teacherAge;
    }

    public Course getCourse() {
        return course;
    }

    public void setCourse(Course course) {
        this.course = course;
    }

    public List<Student> getStudents() {
        return students;
    }

    public void setStudents(List<Student> students) {
        this.students = students;
    }

    @Override
    public String toString() {
        return "Teacher{" +
                "teacherName='" + teacherName + '\'' +
                ", teacherAge=" + teacherAge +
                ", course=" + course +
                ", students=" + students +
                '}';
    }
}

3.3 複雜JSON轉為JavaBean

MainApp:

package com.yiidian.fastjson;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yiidian.domain.Student;
import com.yiidian.domain.Teacher;

import java.util.ArrayList;
import java.util.List;

/**
 * 一點教程網 - http://www.yiidian.com
 */
public class MainApp {

    public static void main(String args[]){

        String COMPLEX_JSON_STR = "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}";

        Teacher teacher = JSONObject.parseObject(COMPLEX_JSON_STR, Teacher.class);
        System.out.println(teacher);
    }

}

運行效果為:

Teacher{teacherName='crystall', teacherAge=27, course=Course{courseName='english', code='1270'}, students=[Student{studentName='lily', studentAge=12}, Student{studentName='lucy', studentAge=15}]}

3.3 JavaBean轉為複雜JSON

MainApp:

package com.yiidian.fastjson;

import com.alibaba.fastjson.JSONObject;
import com.yiidian.domain.Teacher;
/**
 * 一點教程網 - http://www.yiidian.com
 */
public class MainApp {

    public static void main(String args[]){

        String COMPLEX_JSON_STR = "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}";

        Teacher teacher = JSONObject.parseObject(COMPLEX_JSON_STR, Teacher.class);

        String jsonString = JSONObject.toJSONString(teacher);
        System.out.println(jsonString);
    }

}

運行效果為:

{"course":{"code":"1270","courseName":"english"},"students":[{"studentAge":12,"studentName":"lily"},{"studentAge":15,"studentName":"lucy"}],"teacherAge":27,"teacherName":"crystall"}

file

歡迎關註我的公眾號::一點教程。獲得獨家整理的學習資源和日常乾貨推送。
如果您對我的系列教程感興趣,也可以關註我的網站:yiidian.com


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • WordPress通知欄可有效地將流量引至您期望的頁面。此過程可以增加您網站的收入。通知欄可以顯示有關您網站的重要公告,也可以使用該欄捕獲訪問者的電子郵件以增加訂閱。這些欄對促進銷售特別有用,這樣用戶就不會錯過以折扣價購買產品和服務的機會,從而幫助您增加收入。現代的通知欄不僅功能強大,而且功能強大。 ...
  • src/Test.js import React from 'react'; function Test() { return ( <div> test </div> ); } export default Test; src/index.js中引入組件Test 頁面中效果 ...
  • react fiber 指react 16以上的版本 引入react的方式: 1、引入.js文件 2、使用腳手架工具(推薦) 推薦使用react官方提供的腳手架工具:create-react-app React開發環境準備 (npx 是 npm 的高級版本,npx 具有更強大的功能) npx cre ...
  • JavaScript 中 apply、call、bind方法的異同: 相同點 都是用來動態指定函數 this 對象的指向 第一個參數都是 this 要指向的對象,也就是要指定的上下文 都可以利用後續參數傳參 不同點 傳參形式不同:apply 方法接受的是一個參數數組,call 和 bind 方法接受 ...
  • TypeScript聯合類型 聯合類型表示取值可以為多種類型中的一種 如下所示 這一塊我們必須使用string或者number都支持的類型,那麼下麵我們可以進行調用擴展方法toString() TypeScript中對象類型 介面 介面可以描述一種抽象的行為,也可以描述對象的結構形狀,當然我們也需要 ...
  • v-bind:class=" " 綁定樣式 <div id="app"> <!-- 值是對象形式,欄位名是class樣式名,值是boolean值,true是引用該樣式,false不引用 --> <!-- 值是false,只是不引用該樣式,並不是就不顯示該元素了 --> <p v-bind:class ...
  • 前臺:支持(5+3[時尚單頁風格])八套模版,可以在後臺切換 業務模塊(首頁管理) 1. 網站信息:維護網站基本信息,比如標題、描述、關鍵詞、聯繫方式、地址等 2. 業務說明:網站首頁文字業務介紹 3. 公司理念:網站首頁展示公司的4個理念 4. 輪播圖片:網站首頁上面4個輪播圖5. 項目案例:網站 ...
  • 在前面的博客中已經介紹過如何使用Python來操作MySQL資料庫,最近需要將一批數據從csv文件中遷移到Oracle資料庫中,也打算用Python來實現,趁著這個機會,也寫一篇博客學習總結一些如何使用Python來操作Oracle資料庫。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...