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

Java中JSONObject和Map<String,?Object>的轉(zhuǎn)換方法

 更新時間:2024年07月18日 08:34:05   作者:奮力向前123  
平時對接口時,經(jīng)常遇到j(luò)son字符串和map對象之間的交互,這篇文章主要給大家介紹了關(guān)于Java中JSONObject和Map<String,?Object>的轉(zhuǎn)換方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、前言

Java開發(fā)中出參返回和入?yún)魅敫`活的方法是使用Map<String, Object>入?yún)⒒虺鰠?,或者使用JSONObject。

1、好處,參數(shù)可變,對接口擴(kuò)展性很友好。

public ResponseData<WXModelDTO> getUserInfo(@RequestBody  Map<String, Object> map )

在獲取參數(shù)的時候就可以通過

if (map.containsKey("code")) {
            code = map.get("code").toString();
        }

動態(tài)選擇需要的參數(shù)

public WXModelDTO getUserInfo(Map<String, Object> map) {
		String code = "";
		String wxCode = "";
		if (map.containsKey("code")) {
			code = map.get("code").toString();
		}

		if (map.containsKey("wxCode")) {
			wxCode = map.get("wxCode").toString();
		}

如果使用對象實體去傳參,就需要入?yún)⒌淖侄味加?,不方便擴(kuò)展

二、JSONObject和Map<String, Object>的轉(zhuǎn)換

在Java中,JSONObject 和 Map<String, Object> 之間的轉(zhuǎn)換是常見的操作,特別是在處理JSON數(shù)據(jù)和Java對象時。雖然 JSONObject 是來自某個庫(如org.json或com.alibaba.fastjson等)的類,而 Map<String, Object> 是Java標(biāo)準(zhǔn)庫中的一部分,但兩者之間的轉(zhuǎn)換可以通過簡單的方法實現(xiàn)。

從 JSONObject 轉(zhuǎn)換到 Map<String, Object>

對于不同的JSON處理庫,轉(zhuǎn)換的方法可能會有所不同,但基本原理相同。這里以 org.json 和 com.alibaba.fastjson 為例:

使用 org.json

import org.json.JSONObject;  
  
import java.util.HashMap;  
import java.util.Iterator;  
import java.util.Map;  
  
public class JsonToMap {  
    public static Map<String, Object> toMap(JSONObject obj) {  
        Map<String, Object> map = new HashMap<>();  
        Iterator<String> keysItr = obj.keys();  
        while(keysItr.hasNext()) {  
            String key = keysItr.next();  
            map.put(key, obj.get(key));  
        }  
        return map;  
    }  
  
    // 示例  
    public static void main(String[] args) {  
        JSONObject jsonObject = new JSONObject();  
        jsonObject.put("name", "John Doe");  
        jsonObject.put("age", 30);  
  
        Map<String, Object> map = toMap(jsonObject);  
        System.out.println(map);  
    }  
}

使用 com.alibaba.fastjson

Fastjson提供了更為便捷的方法:

import com.alibaba.fastjson.JSONObject;  
  
import java.util.Map;  
  
public class FastJsonToMap {  
    public static Map<String, Object> toMap(JSONObject jsonObject) {  
        return jsonObject; // 因為fastjson的JSONObject實現(xiàn)了Map接口  
    }  
  
    // 示例  
    public static void main(String[] args) {  
        JSONObject jsonObject = new JSONObject();  
        jsonObject.put("name", "John Doe");  
        jsonObject.put("age", 30);  
  
        Map<String, Object> map = toMap(jsonObject);  
        System.out.println(map);  
    }  
}
import com.alibaba.fastjson.JSONObject;  
  
import java.util.Map;  
  
public class FastMapToJson {  
    public static JSONObject toJson(Map<String, Object> map) {  
        return JSONObject.parseObject(JSONObject.toJSONString(map));  
    }  
  
    // 或者直接使用  
    public static JSONObject toJsonSimple(Map<String, Object> map) {  
        return (JSONObject) JSONObject.toJSON(map);  
    }  
  
    // 示例  
    public static void main(String[] args) {  
        Map<String, Object> map = Map.of("name", "John Doe", "age", 30);  
  
        JSONObject jsonObject = toJsonSimple(map);  
        System.out.println(jsonObject.toJSONString());  
    }  
}

總結(jié) 

到此這篇關(guān)于Java中JSONObject和Map<String, Object>轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)JSONObject和Map<String, Object>轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java datetime數(shù)據(jù)類型去掉時分秒的案例詳解

    java datetime數(shù)據(jù)類型去掉時分秒的案例詳解

    在Java中,如果我們想要表示一個日期而不包括時間(時分秒),我們通常會使用java.time包中的LocalDate類,這篇文章主要介紹了java datetime數(shù)據(jù)類型去掉時分秒,需要的朋友可以參考下
    2024-06-06
  • Java主流壓縮解壓工具對比、用法與選取詳解

    Java主流壓縮解壓工具對比、用法與選取詳解

    開發(fā)過程中可能會用到壓縮文件的需求,下面這篇文章主要給大家介紹了關(guān)于Java主流壓縮解壓工具對比、用法與選取的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • springbooot使用google驗證碼的功能實現(xiàn)

    springbooot使用google驗證碼的功能實現(xiàn)

    這篇文章主要介紹了springbooot使用google驗證碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • JAVA 實現(xiàn)磁盤文件加解密操作的示例代碼

    JAVA 實現(xiàn)磁盤文件加解密操作的示例代碼

    這篇文章主要介紹了JAVA 實現(xiàn)磁盤文件加解密操作的示例代碼,幫助大家利用Java實現(xiàn)文件的加解密,感興趣的朋友可以了解下
    2020-09-09
  • Spring中bean集合注入的方法詳解

    Spring中bean集合注入的方法詳解

    Spring作為項目中不可缺少的底層框架,提供的最基礎(chǔ)的功能就是bean的管理了。bean的注入相信大家都比較熟悉了,但是有幾種不太常用到的集合注入方式,可能有的同學(xué)會不太了解,今天我們就通過實例看看它的使用
    2022-07-07
  • Java中LinkedList原理代碼解析

    Java中LinkedList原理代碼解析

    這篇文章主要介紹了Java中LinkedList原理代碼解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Java注解與反射原理說明

    Java注解與反射原理說明

    今天小編就為大家分享一篇關(guān)于Java注解與反射原理說明,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Java使用Tesseract-Ocr識別數(shù)字

    Java使用Tesseract-Ocr識別數(shù)字

    這篇文章主要介紹了Java使用Tesseract-Ocr識別數(shù)字的方法,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-04-04
  • 微信小程序調(diào)用微信登陸獲取openid及java做為服務(wù)端示例

    微信小程序調(diào)用微信登陸獲取openid及java做為服務(wù)端示例

    這篇文章主要介紹了微信小程序調(diào)用微信登陸獲取openid及java做為服務(wù)端示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 基于Java的度分秒坐標(biāo)轉(zhuǎn)純經(jīng)緯度坐標(biāo)的漂亮國基地信息管理的方法

    基于Java的度分秒坐標(biāo)轉(zhuǎn)純經(jīng)緯度坐標(biāo)的漂亮國基地信息管理的方法

    本文以java語言為例,詳細(xì)介紹如何管理漂亮國的基地信息,為下一步全球的空間可視化打下堅實的基礎(chǔ),首先介紹如何對數(shù)據(jù)進(jìn)行去重處理,然后介紹在java當(dāng)中如何進(jìn)行度分秒位置的轉(zhuǎn)換,最后結(jié)合實現(xiàn)原型進(jìn)行詳細(xì)的說明,感興趣的朋友跟隨小編一起看看吧
    2024-06-06

最新評論

左云县| 秭归县| 汾阳市| 德州市| 唐河县| 彰化市| 宁化县| 陕西省| 班戈县| 遂昌县| 娱乐| 广元市| 马边| 法库县| 宿州市| 昌平区| 郁南县| 区。| 大余县| 剑阁县| 合水县| 海淀区| 阳原县| 鲜城| 鄂温| 涿鹿县| 东方市| 鄱阳县| 梁平县| 德保县| 兴山县| 双城市| 千阳县| 丹巴县| 临颍县| 台中县| 德阳市| 鄄城县| 多伦县| 鹤庆县| 阿拉善左旗|