在Java中,JSONObject对象和Map对象是两种常用的数据结构,本篇攻略将介绍JSONObject对象和Map对象相互转换的方法。
在Java中,JSONObject对象和Map对象是两种常用的数据结构,本篇攻略将介绍JSONObject对象和Map对象相互转换的方法。
什么是JSONObject对象和Map对象
JSONObject对象
JSONObject 是一个能够存储 key-value 映射的简单的开放解决方案。 JSONObject 的 constructor 支持通过传入一个 Map
Map对象
Map 是一个key-value映射的接口。Map 的实现类可以看做一个散列表,也称为哈希表。每一个Key都对应了一个Value。Map 通常用来存储一些键值对(key-value pair), 并根据key快速获取value。
JSONObject对象转Map对象
我们可以通过 JSONObject 对象的 toMap
方法将 JSONObject 转换成 Map 对象:
import org.json.JSONObject;
import java.util.Map;
public class JsonMapConvert {
public static Map<String, Object> jsonToMap(JSONObject json) {
Map<String, Object> retMap = new HashMap<String, Object>();
if (json != null) {
retMap = toMap(json);
}
return retMap;
}
public static Map<String, Object> toMap(JSONObject object) {
Map<String, Object> map = new HashMap<String, Object>();
Iterator<String> keysItr = object.keys();
while(keysItr.hasNext()) {
String key = keysItr.next();
Object value = object.get(key);
if(value instanceof JSONArray) {
value = toList((JSONArray) value);
}
else if(value instanceof JSONObject) {
value = toMap((JSONObject) value);
}
map.put(key, value);
}
return map;
}
}
这里使用了 JSONObject 对象的 keys
和 get
方法来获取 key-value 映射并转换成 Map 对象。
示例:
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Demo {
public static void main(String[] args){
JSONObject jsonObj = new JSONObject();
jsonObj.put("name", "张三");
jsonObj.put("age", 18);
jsonObj.put("address", "北京市海淀区");
Map<String,Object> map = JsonMapConvert.jsonToMap(jsonObj);
System.out.println(map.get("name")); // 张三
System.out.println(map.get("age")); // 18
System.out.println(map.get("address")); // 北京市海淀区
}
}
上面的代码示例中,我们首先创建了一个 JSONObject 对象并添加了三个键值对,然后使用 JsonMapConvert 类的 jsonToMap
方法将 JSONObject 对象转换成 Map 对象,最后通过 map 对象获取键值对的值。
Map对象转JSONObject对象
通过put
方法将Map置入到JSONObject中即可实现Map转JSONObject,如下所示:
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class MapToJsonConvert {
public static JSONObject toJSONObject(Map map) {
return new JSONObject(map);
}
}
示例:
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Demo {
public static void main(String[] args){
Map<String,Object> map = new HashMap<String,Object>();
map.put("name", "张三");
map.put("age", 18);
map.put("address", "北京市海淀区");
JSONObject jsonObj = MapToJsonConvert.toJSONObject(map);
System.out.println(jsonObj.toString());
}
}
上面的代码示例中,我们首先创建了一个 Map 对象并添加了三个键值对,然后使用 MapToJsonConvert 类的 toJSONObject 方法将 Map 对象转换成 JSONObject 对象,最后将 JSONObject 对象打印输出。
本文标题为:JAVA中JSONObject对象和Map对象之间的相互转换
基础教程推荐
- web开发中添加数据源实现思路 2023-08-02
- 图解Java ReentrantLock公平锁和非公平锁的实现 2023-06-10
- Java线程中断interrupt的常用方法 2023-01-08
- Springboot初始化项目并完成登入注册的全过程 2023-06-30
- SpringMVC下获取验证码实例详解 2023-07-30
- JSP组件commons-fileupload实现文件上传 2023-08-02
- SpringMVC @GetMapping注解路径冲突问题解决 2023-02-27
- Java算法设计与分析分治算法 2023-03-22
- Java实现图片上传至FastDFS入门教程 2024-02-26
- Java实现定时任务的方法详解 2023-06-23