最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中json和對象之間相互轉(zhuǎn)換的運用

 更新時間:2023年07月14日 09:48:02   作者:nickel369  
本文主要介紹了java中json和對象之間相互轉(zhuǎn)換的運用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.目錄結(jié)構(gòu)

2.配置相關(guān)文件

2.1.引入相關(guān)的pom文件

pom.xml

<dependencies>
        <!-- JSON -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.12.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.12.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.12.3</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.8</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.24</version>
        </dependency>
    </dependencies>

2.2.配置引入json文件工具類

PurUtil.java

package util;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class PurUtil {
    /**
     * 讀取json文件方法
     * @param url
     * @return
     */
    public static  String readWithFileInputStream(String url){
        // 創(chuàng)建一個 File 對象,表示要讀取的文件
        File file = new File(url);
        // 創(chuàng)建一個 StringBuilder 對象,用來存儲讀取到的字符串
        StringBuilder sb = new StringBuilder();
        try {
            // 創(chuàng)建一個 FileReader 對象,用來讀取文件的字符流
            FileReader fr = new FileReader(file);
            // 創(chuàng)建一個 BufferedReader 對象,用來緩沖字符流,并提供按行讀取的方法
            BufferedReader br = new BufferedReader(fr);
            // 定義一個變量,用來存儲每行的內(nèi)容
            String line;
            // 循環(huán)讀取每一行,直到文件結(jié)束
            while ((line = br.readLine()) != null) {
                // 將每行的內(nèi)容追加到 StringBuilder 中,并添加換行符
                sb.append(line).append("\n");
            }
            // 關(guān)閉 BufferedReader 和 FileReader
            br.close();
            fr.close();
        } catch (IOException e) {
            // 處理異常
            e.printStackTrace();
        }
        // 將 StringBuilder 轉(zhuǎn)換為字符串,并打印輸出
        String json = sb.toString();
        return json;
    }
}

2. 3.配置JSON和對象相互轉(zhuǎn)化工具類

JsonUtil.java

package util;
import com.alibaba.fastjson.JSON;
public class JsonUtil {
    public static String getJson(Object object){
       return JSON.toJSONString(object);
    }
    public static <T> T fromJson(String json, Class<T> clazz) {
        return JSON.parseObject(json,clazz);
    }
}

2.4.配置java對象

Columns.java

package entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Columns {
    @JsonProperty("Name")
    private String name;
    @JsonProperty("Caption")
    private String caption;
    @JsonProperty("DataType")
    private String dataType;
    public Columns() {
    }
    public Columns(String name, String caption, String dataType) {
        this.name = name;
        this.caption = caption;
        this.dataType = dataType;
    }
    @JSONField(name = "Name")
    public String getName() {
        return name;
    }
    @JSONField(name = "Name")
    public void setName(String name) {
        this.name = name;
    }
    @JSONField(name = "Caption")
    public String getCaption() {
        return caption;
    }
    @JSONField(name = "Caption")
    public void setCaption(String caption) {
        this.caption = caption;
    }
    @JSONField(name = "DataType")
    public String getDataType() {
        return dataType;
    }
    @JSONField(name = "DataType")
    public void setDataType(String dataType) {
        this.dataType = dataType;
    }
}

IXbusPlanInfoBuild.java

package entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.List;
public class IXbusPlanInfoBuild{
    @JsonProperty("MessageHeader")
    private MessageHeader messageHeader;
    @JsonProperty("Tables")
    private List<Table> listTab;
    public IXbusPlanInfoBuild(){
      this.messageHeader=new MessageHeader();
      this.listTab=new ArrayList<Table>();
      Table table=new Table();
        this.listTab.add(table);
    }
    @JSONField(name = "MessageHeader")
    public MessageHeader getMessageHeader() {
        return messageHeader;
    }
    public void setMessageHeader(MessageHeader messageHeader) {
        this.messageHeader = messageHeader;
    }
    @JSONField(name = "Tables")
    public List<Table> getListTab() {
        return listTab;
    }
    @JSONField(name = "Tables")
    public void setListTab(List<Table> listTab) {
        this.listTab = listTab;
    }
}

MessageHeader.java

package entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
public class MessageHeader {
    @JsonProperty("UUID")
    private String uuid;
    @JsonProperty("SvcName")
    private String svcName;
    @JsonProperty("Sender")
    private String sender;
    @JsonProperty("Receiver")
    private String receiver;
    @JsonProperty("MessageId")
    private String messageId;
    @JsonProperty("Msg")
    private String msg;
    @JsonProperty("Flag")
    private Integer flag;
    @JsonProperty("MessageTypeId")
    private String messageTypeId;
    @JsonProperty("SendDate")
    private String sendDate;
    @JsonProperty("SendTime")
    private String sendTime;
    @JSONField(name = "UUID")
    public String getUuid() {
        return uuid;
    }
    public void setUuid(String uuid) {
        this.uuid = uuid;
    }
    @JSONField(name = "SvcName")
    public String getSvcName() {
        return svcName;
    }
    public void setSvcName(String svcName) {
        this.svcName = svcName;
    }
    @JSONField(name = "Sender")
    public String getSender() {
        return sender;
    }
    public void setSender(String sender) {
        this.sender = sender;
    }
    @JSONField(name = "Receiver")
    public String getReceiver() {
        return receiver;
    }
    public void setReceiver(String receiver) {
        this.receiver = receiver;
    }
    @JSONField(name = "MessageId")
    public String getMessageId() {
        return messageId;
    }
    public void setMessageId(String messageId) {
        this.messageId = messageId;
    }
    @JSONField(name = "Msg")
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    @JSONField(name = "Flag")
    public Integer getFlag() {
        return flag;
    }
    public void setFlag(Integer flag) {
        this.flag = flag;
    }
    @JSONField(name = "MessageTypeId")
    public String getMessageTypeId() {
        return messageTypeId;
    }
    public void setMessageTypeId(String messageTypeId) {
        this.messageTypeId = messageTypeId;
    }
    @JSONField(name = "SendDate")
    public String getSendDate() {
        return sendDate;
    }
    public void setSendDate(String sendDate) {
        this.sendDate = sendDate;
    }
    @JSONField(name = "SendTime")
    public String getSendTime() {
        return sendTime;
    }
    public void setSendTime(String sendTime) {
        this.sendTime = sendTime;
    }
}

Rows.java

package entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Rows {
    @JsonProperty("MESSAGE")
    private String message;
    @JsonProperty("ACCOUNT_PERIOD")
    private String accountPeriod;
    @JsonProperty("MSG_TYPE")
    private String msgType;
    @JsonProperty("MR_LINE_ID")
    private String mrLineId;
    @JsonProperty("RETURN_TIME")
    private String returnTime;
    @JsonProperty("SYSTEM_ID")
    private String systemId;
    @JSONField(name = "MESSAGE")
    public String getMessage() {
        return message;
    }
    @JSONField(name = "MESSAGE")
    public void setMessage(String message) {
        this.message = message;
    }
    @JSONField(name = "ACCOUNT_PERIOD")
    public String getAccountPeriod() {
        return accountPeriod;
    }
    @JSONField(name = "ACCOUNT_PERIOD")
    public void setAccountPeriod(String accountPeriod) {
        this.accountPeriod = accountPeriod;
    }
    @JSONField(name = "MSG_TYPE")
    public String getMsgType() {
        return msgType;
    }
    @JSONField(name = "MSG_TYPE")
    public void setMsgType(String msgType) {
        this.msgType = msgType;
    }
    @JSONField(name = "MR_LINE_ID")
    public String getMrLineId() {
        return mrLineId;
    }
    @JSONField(name = "MR_LINE_ID")
    public void setMrLineId(String mrLineId) {
        this.mrLineId = mrLineId;
    }
    @JSONField(name = "RETURN_TIME")
    public String getReturnTime() {
        return returnTime;
    }
    @JSONField(name = "RETURN_TIME")
    public void setReturnTime(String returnTime) {
        this.returnTime = returnTime;
    }
    @JSONField(name = "SYSTEM_ID")
    public String getSystemId() {
        return systemId;
    }
    @JSONField(name = "SYSTEM_ID")
    public void setSystemId(String systemId) {
        this.systemId = systemId;
    }
}

Table.java

package entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.List;
public class Table {
    @JsonProperty("Name")
    private String name;
    @JsonProperty("Columns")
    private List<Columns> listCol;
    @JsonProperty("Rows")
    private List<Rows> listRows;
    public Table(){
        this.listCol=new ArrayList<Columns>();
        this.listRows=new ArrayList<Rows>();
    }
    @JSONField(name = "Name")
    public String getName() {
        return name;
    }
    @JSONField(name = "Name")
    public void setName(String name) {
        this.name = name;
    }
    @JSONField(name = "Columns")
    public List<Columns> getListCol() {
        return listCol;
    }
    @JSONField(name = "Columns")
    public void setListCol(List<Columns> listCol) {
        this.listCol = listCol;
    }
    @JSONField(name = "Rows")
    public List<Rows> getListRows() {
        return listRows;
    }
    @JSONField(name = "Rows")
    public void setListRows(List<Rows> listRows) {
        this.listRows = listRows;
    }
}

說明: @JSONField在get方法進(jìn)行設(shè)置,那么對象在轉(zhuǎn)化為json格式的時候,將會按照J(rèn)SONField設(shè)置的值進(jìn)行轉(zhuǎn)化;@JSONField在set方法設(shè)置,那么json格式字符串才會匹配注解上面一樣的對象屬性,然后對對象屬性進(jìn)行賦值。

2.5.配置測試工具類

2.5.1對象轉(zhuǎn)化為json字符串

TestPut.java

package test;
import entity.*;
import util.JsonUtil;
import util.PurUtil;
import java.util.ArrayList;
import java.util.List;
public class TestPut {
    public static void main(String[] args) {
        String str2=JsonUtil.getJson(TestPut.getIXbusPlanInfoBuild());
        int a=1;
    }
    public static IXbusPlanInfoBuild getIXbusPlanInfoBuild(){
        IXbusPlanInfoBuild iXbusPlanInfoBuild=new IXbusPlanInfoBuild();
        MessageHeader messageHeader=new MessageHeader();
        messageHeader.setUuid("8ac4c0b689297e31018943de73433307");
        messageHeader.setSvcName("1012114110");
        messageHeader.setSender("1012");
        messageHeader.setReceiver("1141");
        messageHeader.setMessageId("");
        messageHeader.setMsg("");
        messageHeader.setFlag(0);
        messageHeader.setMessageTypeId("1012114110");
        messageHeader.setSendDate("20230711");
        messageHeader.setSendTime("153319");
        //table
        List<Table> listTab=new ArrayList<Table>();
        Table table=new Table();
        table.setName("BODY");
        List<Columns> listCol=new ArrayList<Columns>();
        Columns columns1=new Columns();
        columns1.setName("MR_LINE_ID");
        columns1.setCaption("計劃行號");
        columns1.setDataType("S");
        listCol.add(columns1);
        Columns columns2=new Columns();
        columns2.setName("ACCOUNT_PERIOD");
        columns2.setCaption("會計期");
        columns2.setDataType("S");
        listCol.add(columns2);
        Columns columns3=new Columns();
        columns3.setName("RETURN_TIME");
        columns3.setCaption("反饋時間");
        columns3.setDataType("S");
        listCol.add(columns3);
        Columns columns4=new Columns();
        columns4.setName("MSG_TYPE");
        columns4.setCaption("消息類型(S:成功 ;E:失敗)");
        columns4.setDataType("S");
        listCol.add(columns4);
        Columns columns5=new Columns();
        columns5.setName("MESSAGE");
        columns5.setCaption("消息內(nèi)容");
        columns5.setDataType("S");
        listCol.add(columns5);
        Columns columns6=new Columns();
        columns6.setName("SYSTEM_ID");
        columns6.setCaption("系統(tǒng)別");
        columns6.setDataType("S");
        listCol.add(columns6);
        table.setListCol(listCol);
        List<Rows> listRow=new ArrayList<Rows>();
        Rows rows=new Rows();
        rows.setMessage("消息接收成功");
        rows.setAccountPeriod("202307");
        rows.setMsgType("S");
        rows.setMrLineId("BJJHGG01230700032-001");
        rows.setReturnTime("20230711153319");
        rows.setSystemId("1012");
        listRow.add(rows);
        table.setListRows(listRow);
        listTab.add(table);
        iXbusPlanInfoBuild.setMessageHeader(messageHeader);
        iXbusPlanInfoBuild.setListTab(listTab);
        return iXbusPlanInfoBuild;
    }
}

2.5.2字符串轉(zhuǎn)化為對象

TestPut.java

package test;
import entity.*;
import util.JsonUtil;
import util.PurUtil;
import java.util.ArrayList;
import java.util.List;
public class TestPut {
    public static void main(String[] args) {
         String str= PurUtil.readWithFileInputStream("E:/java project/studyEntity1/src/main/resources/plan.json");
         IXbusPlanInfoBuild iXbusPlanInfoBuild=JsonUtil.fromJson(str,IXbusPlanInfoBuild.class);
        int a=1;
    }
    public static IXbusPlanInfoBuild getIXbusPlanInfoBuild(){
        IXbusPlanInfoBuild iXbusPlanInfoBuild=new IXbusPlanInfoBuild();
        MessageHeader messageHeader=new MessageHeader();
        messageHeader.setUuid("8ac4c0b689297e31018943de73433307");
        messageHeader.setSvcName("1012114110");
        messageHeader.setSender("1012");
        messageHeader.setReceiver("1141");
        messageHeader.setMessageId("");
        messageHeader.setMsg("");
        messageHeader.setFlag(0);
        messageHeader.setMessageTypeId("1012114110");
        messageHeader.setSendDate("20230711");
        messageHeader.setSendTime("153319");
        //table
        List<Table> listTab=new ArrayList<Table>();
        Table table=new Table();
        table.setName("BODY");
        List<Columns> listCol=new ArrayList<Columns>();
        Columns columns1=new Columns();
        columns1.setName("MR_LINE_ID");
        columns1.setCaption("計劃行號");
        columns1.setDataType("S");
        listCol.add(columns1);
        Columns columns2=new Columns();
        columns2.setName("ACCOUNT_PERIOD");
        columns2.setCaption("會計期");
        columns2.setDataType("S");
        listCol.add(columns2);
        Columns columns3=new Columns();
        columns3.setName("RETURN_TIME");
        columns3.setCaption("反饋時間");
        columns3.setDataType("S");
        listCol.add(columns3);
        Columns columns4=new Columns();
        columns4.setName("MSG_TYPE");
        columns4.setCaption("消息類型(S:成功 ;E:失敗)");
        columns4.setDataType("S");
        listCol.add(columns4);
        Columns columns5=new Columns();
        columns5.setName("MESSAGE");
        columns5.setCaption("消息內(nèi)容");
        columns5.setDataType("S");
        listCol.add(columns5);
        Columns columns6=new Columns();
        columns6.setName("SYSTEM_ID");
        columns6.setCaption("系統(tǒng)別");
        columns6.setDataType("S");
        listCol.add(columns6);
        table.setListCol(listCol);
        List<Rows> listRow=new ArrayList<Rows>();
        Rows rows=new Rows();
        rows.setMessage("消息接收成功");
        rows.setAccountPeriod("202307");
        rows.setMsgType("S");
        rows.setMrLineId("BJJHGG01230700032-001");
        rows.setReturnTime("20230711153319");
        rows.setSystemId("1012");
        listRow.add(rows);
        table.setListRows(listRow);
        listTab.add(table);
        iXbusPlanInfoBuild.setMessageHeader(messageHeader);
        iXbusPlanInfoBuild.setListTab(listTab);
        return iXbusPlanInfoBuild;
    }
}

到此這篇關(guān)于java中json和對象之間相互轉(zhuǎn)換的運用的文章就介紹到這了,更多相關(guān)java json和對象相互轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 大模型chat/completions和completions區(qū)別解析

    大模型chat/completions和completions區(qū)別解析

    OpenAI的completions和chat/completions是兩個不同的端點,completions用于單次文本補全,而chat/completions用于多輪對話生成,選擇哪個端點取決于你的具體需求,本文介紹大模型chat/completions和completions區(qū)別,感興趣的朋友一起看看吧
    2025-03-03
  • MAC?在類路徑或引導(dǎo)類路徑中找不到程序包?java.lang問題

    MAC?在類路徑或引導(dǎo)類路徑中找不到程序包?java.lang問題

    這篇文章主要介紹了MAC?在類路徑或引導(dǎo)類路徑中找不到程序包?java.lang問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java 抽象類詳解

    Java 抽象類詳解

    抽象類是用abstract關(guān)鍵字修飾的類,其核心作用是作為父類提供通用模板,同時強制子類實現(xiàn)特定方法,本文介紹Java 抽象類的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • Java下利用Jackson進(jìn)行JSON解析和序列化示例

    Java下利用Jackson進(jìn)行JSON解析和序列化示例

    本篇文章主要介紹了Java下利用Jackson進(jìn)行JSON解析和序列化示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • Springcloud Alibaba超詳細(xì)使用詳解

    Springcloud Alibaba超詳細(xì)使用詳解

    SpringCloudAlibaba是一款優(yōu)秀的微服務(wù)架構(gòu),在市面上有著廣泛的應(yīng)用,這篇文章介紹了SpringCloudAlibaba的一些基本使用,適合初學(xué)者,希望能夠給大家?guī)韼椭?/div> 2024-08-08
  • springboot之redis cache TTL選項的使用

    springboot之redis cache TTL選項的使用

    這篇文章主要介紹了springboot之redis cache TTL選項的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 淺談springBean的作用域

    淺談springBean的作用域

    本文主要介紹了淺談springBean的作用域,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Java使用JSONObject操作json實例解析

    Java使用JSONObject操作json實例解析

    這篇文章主要介紹了Java使用JSONObject操作json,結(jié)合實例形式較為詳細(xì)的分析了Java使用JSONObject解析json數(shù)據(jù)相關(guān)原理、使用技巧與操作注意事項,需要的朋友可以參考下
    2020-04-04
  • 一文弄懂Java中ThreadPoolExecutor

    一文弄懂Java中ThreadPoolExecutor

    ThreadPoolExecutor是Java中的一個線程池實現(xiàn),它可以管理和控制多個 Worker Threads,本文就詳細(xì)的介紹一下Java中ThreadPoolExecutor,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • IDEA 的基本介紹使用及斷點調(diào)試技巧

    IDEA 的基本介紹使用及斷點調(diào)試技巧

    IDEA 是 JetBrains 公司的產(chǎn)品,總部位于捷克的首都布拉格,IDEA在業(yè)界被公認(rèn)為最好的 Java 開發(fā)工具,今天通過本文給大家介紹IDEA 的基本介紹使用及斷點調(diào)試技巧,感興趣的朋友跟隨小編一起看看吧
    2021-11-11

最新評論

毕节市| 彰化市| 云梦县| 乐平市| 明光市| 米林县| 灵山县| 湖北省| 老河口市| 青神县| 沙河市| 虎林市| 湟中县| 宜君县| 康马县| 家居| 吴堡县| 上虞市| 克什克腾旗| 玛沁县| 夏邑县| 炎陵县| 大余县| 保德县| 专栏| 汉源县| 丰城市| 卫辉市| 普宁市| 耿马| 泾阳县| 台湾省| 石楼县| 宁乡县| 石景山区| 灵台县| 永新县| 中江县| 饶河县| 密山市| 天门市|