FastjsonMap轉對象詳解

Fastjson是一個Java語言編寫的高性能JSON處理器,是阿里巴巴的開源產品。它可以將JSON字元串轉換為Java對象,也可以將Java對象轉換為JSON字元串。在Fastjson中,Map和Java Bean之間的轉換是非常容易的,本文將詳細介紹Fastjson中Map與Java Bean之間的轉換。

一、FastjsonMap轉對象不區分大小寫

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

public class FastJsonDemo {
    public static void main(String[] args) {
        String jsonStr = "{ \"name\":\"fastjson\", \"Type\":\"Java library\" }";
        JSONObject jsonObj = JSON.parseObject(jsonStr, JSONObject.class);
        System.out.println(jsonObj.getString("name"));
        System.out.println(jsonObj.getString("Type"));
        System.out.println(jsonObj.getString("type")); //輸出null,不區分大小寫
    }
}

在fastjson中,如果一個對象的屬性名在JSON中不存在,則fastjson會將其設置為null值。對於屬性名的大小寫,fastjson並不區分,如果JSON中存在屬性「Type」,則無論Java對象中是否有屬性「type」,都能夠正確地轉換。

二、Fastjson對象轉JSON

import com.alibaba.fastjson.JSON;

public class FastJsonDemo {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("fastjson");
        person.setAge(10);

        String jsonString = JSON.toJSONString(person);
        System.out.println(jsonString);
    }
}

class Person {
    private String name;
    private int age;

    // 省略getter和setter
}

Fastjson可以將Java對象轉換為JSON字元串,只需調用JSON.toJSONString()方法即可。Fastjson默認下劃線命名法轉換為駝峰式命名法,即Java對象屬性名為name,JSON字元串中屬性名為「name」。

三、Fastjson轉Map

import com.alibaba.fastjson.JSON;

import java.util.HashMap;
import java.util.Map;

public class FastJsonDemo {
    public static void main(String[] args) {
        String jsonStr = "{ \"name\":\"fastjson\", \"age\":10 }";
        Map map = JSON.parseObject(jsonStr, HashMap.class);
        System.out.println(map.get("name"));
        System.out.println(map.get("age"));
    }
}

Fastjson可以將JSON字元串轉換為Map對象,只需調用JSON.parseObject()方法,並指定返回Map類型。fastjson將JSON字元串中的屬性名作為Map的key,屬性值作為Map的value存儲。在Map對象中,屬性名的大小寫與JSON中的一致。

四、Fastjson對象轉字元串

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

public class FastJsonDemo {
    public static void main(String[] args) {
        JSONObject jsonObj = new JSONObject();
        jsonObj.put("name", "fastjson");
        jsonObj.put("age", 10);

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

Fastjson可以將JSONObject轉換為JSON字元串,只需調用toJSONString()方法即可。JSONObject可以直接添加屬性和值,但人們更多地使用Map和Java Bean封裝數據。

五、Fastjson字元串轉Map

import com.alibaba.fastjson.JSON;

import java.util.HashMap;
import java.util.Map;

public class FastJsonDemo {
    public static void main(String[] args) {
        String jsonStr = "{ \"name\":\"fastjson\", \"age\":10 }";
        Map map = JSON.parseObject(jsonStr, HashMap.class);
        System.out.println(map.get("name"));
        System.out.println(map.get("age"));
    }
}

Fastjson可以將JSON字元串轉換為Map對象,只需調用JSON.parseObject()方法,並指定返回Map類型。fastjson將JSON字元串中的屬性名作為Map的key,屬性值作為Map的value存儲。在Map對象中,屬性名的大小寫與JSON中的一致。

六、Fastjson轉實體對象

import com.alibaba.fastjson.JSON;

public class FastJsonDemo {
    public static void main(String[] args) {
        String jsonStr = "{ \"name\":\"fastjson\", \"age\":10 }";
        Person person = JSON.parseObject(jsonStr, Person.class);
        System.out.println(person.getName());
        System.out.println(person.getAge());
    }
}

class Person {
    private String name;
    private int age;

    // 省略getter和setter
}

Fastjson可以將JSON字元串轉換為Java對象,只需調用JSON.parseObject()方法,並指定轉換的Java類型即可。在實體對象中,fastjson將JSON字元串中的屬性名與實體對象中的屬性名進行對應。在進行屬性的轉換時仍然不區分大小寫。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/194071.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-02 09:42
下一篇 2024-12-02 09:42

相關推薦

  • 面向對象編程、類和對象

    面向對象編程(Object-Oriented Programming, OOP)是一種編程方法,它將現實世界中的事物抽象為對象(Object),對象的屬性和方法被封裝成類(Clas…

    編程 2025-04-29
  • Mapster:一個高性能的對象映射庫

    本文將深入介紹furion.extras.objectmapper.mapster,一個高性能的對象映射庫,解釋它是如何工作的以及如何在你的項目中使用它。 一、輕鬆地實現對象之間的…

    編程 2025-04-28
  • Python返回對象類型

    Python是一種動態、解釋型、高級編程語言。Python是一種面向對象的語言,即所有的一切都是一個對象。 一、基本類型 Python中的基本類型有整數int、浮點數float、布…

    編程 2025-04-28
  • Python中通過對象不能調用類方法和靜態方法的解析

    當我們在使用Python編寫程序時,可能會遇到通過對象調用類方法和靜態方法失敗的問題,那麼這是為什麼呢?接下來,我們將從多個方面對這個問題進行詳細解析。 一、類方法和靜態方法的定義…

    編程 2025-04-27
  • Python內置函數——查看對象內存

    本文將介紹Python內置函數中,在開發中查看對象內存的相關函數。 一、id()函數 id()函數是Python內置函數,用於返回對象的唯一標識符,也就是對象在內存中的地址。 nu…

    編程 2025-04-27
  • 解決ERP運行時錯誤429:ActiveX不能創建對象 DAO350

    ERP運行時錯誤429是由於「ActiveX不能創建對象」而引發的。這種錯誤通常是由於您在嘗試訪問Microsoft Access資料庫時缺少了必要的組件。 一、安裝並註冊DAO庫…

    編程 2025-04-27
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變數讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25

發表回復

登錄後才能評論