Java中JSONObject和Map<String,?Object>的轉(zhuǎn)換方法
一、前言
Java開發(fā)中出參返回和入?yún)魅敫`活的方法是使用Map<String, Object>入?yún)⒒虺鰠?,或者使用JSONObject。
1、好處,參數(shù)可變,對接口擴展性很友好。
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)⒌淖侄味加?,不方便擴展
二、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標準庫中的一部分,但兩者之間的轉(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()); } }
總結
到此這篇關于Java中JSONObject和Map<String, Object>轉(zhuǎn)換的文章就介紹到這了,更多相關JSONObject和Map<String, Object>轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- 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使用方法和常用操作
相關文章
java實戰(zhàn)技巧之if-else代碼優(yōu)化技巧大全
代碼中如果if-else比較多,閱讀起來比較困難,維護起來也比較困難,很容易出bug,下面這篇文章主要給大家介紹了關于java實戰(zhàn)技巧之if-else代碼優(yōu)化技巧的相關資料,需要的朋友可以參考下2022-02-02Spring中如何獲取request的方法匯總及其線程安全性分析
這篇文章主要給大家介紹了關于Spring中如何獲取request的方法匯總及其線程安全性分析的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2018-04-04