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標(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使用方法和常用操作
相關(guān)文章
java實戰(zhàn)技巧之if-else代碼優(yōu)化技巧大全
代碼中如果if-else比較多,閱讀起來比較困難,維護起來也比較困難,很容易出bug,下面這篇文章主要給大家介紹了關(guān)于java實戰(zhàn)技巧之if-else代碼優(yōu)化技巧的相關(guān)資料,需要的朋友可以參考下2022-02-02
Spring中如何獲取request的方法匯總及其線程安全性分析
這篇文章主要給大家介紹了關(guān)于Spring中如何獲取request的方法匯總及其線程安全性分析的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04

