Java中JSONObject和Map<String,?Object>的轉(zhuǎn)換方法
一、前言
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)文章希望大家以后多多支持腳本之家!
- Java如何獲取JSONObject內(nèi)指定字段key的value值
- Java中如何將String轉(zhuǎn)JSONObject
- java中如何判斷JSONObject是否存在某個Key
- Java使用fastjson對String、JSONObject、JSONArray相互轉(zhuǎn)換
- Java 如何遍歷JsonObject對象
- JAVA中JSONObject對象和Map對象之間的相互轉(zhuǎn)換
- java中JSONObject轉(zhuǎn)換為HashMap(方法+main方法調(diào)用實例)
- Java使用JSONObject需要的6個jar包下載地址
- 詳解Java中String JSONObject JSONArray List<實體類>轉(zhuǎn)換
- Java使用JSONObject操作json實例解析
- Java中JSONObject與JSONArray的使用示例小結(jié)
相關(guān)文章
java datetime數(shù)據(jù)類型去掉時分秒的案例詳解
在Java中,如果我們想要表示一個日期而不包括時間(時分秒),我們通常會使用java.time包中的LocalDate類,這篇文章主要介紹了java datetime數(shù)據(jù)類型去掉時分秒,需要的朋友可以參考下2024-06-06
springbooot使用google驗證碼的功能實現(xiàn)
這篇文章主要介紹了springbooot使用google驗證碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05
微信小程序調(diào)用微信登陸獲取openid及java做為服務(wù)端示例
這篇文章主要介紹了微信小程序調(diào)用微信登陸獲取openid及java做為服務(wù)端示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01
基于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

