使用fastjson完成 jsonobject转map
时间: 2023-09-17 09:11:18 浏览: 145
可以使用以下代码将 JSONObject 转换为 Map:
```
import com.alibaba.fastjson.JSONObject;
public static Map<String, Object> jsonToMap(JSONObject json) {
Map<String, Object> map = new HashMap<>();
for (String key : json.keySet()) {
Object value = json.get(key);
if (value instanceof JSONObject) {
value = jsonToMap((JSONObject) value);
}
map.put(key, value);
}
return map;
}
```
调用方式如下:
```
JSONObject jsonObject = JSON.parseObject(jsonString);
Map<String, Object> map = jsonToMap(jsonObject);
```
相关问题
fastjson用jsonobject转map
可以使用Fastjson的JSONObject的getInnerMap()方法,将JSONObject对象转换成Map对象。
示例代码:
```
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class FastjsonDemo {
public static void main(String[] args) {
// 创建JSONObject对象
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "张三");
jsonObject.put("age", 18);
jsonObject.put("gender", "男");
// 将JSONObject对象转换成Map对象
Map<String, Object> map = jsonObject.getInnerMap();
// 输出Map对象
System.out.println(map);
}
}
```
输出结果:
```
{name=张三, gender=男, age=18}
```
JDK8 com.alibaba.fastjson.JSONObject转换Map<String, BigDecimal>
在JDK 8中,如果你想要将`com.alibaba.fastjson.JSONObject`转换成`Map<String, BigDecimal>`,你可以使用Fastjson库提供的便捷方法。首先,你需要添加fastjson的依赖到你的项目中。
以下是一个示例:
```java
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class Main {
public static void main(String[] args) {
// 假设你有一个JSONObject
JSONObject jsonObject = JSON.parseObject("{\"key1\":123.45, \"key2\":678.90}");
// 使用JSONUtil可以直接转化为Map
Map<String, BigDecimal> map = JSON.parseObject(jsonObject.toJSONString(), Map.class);
// 现在map变量包含了键值对(key1:123.45, key2:678.90)
System.out.println(map.get("key1")); // 输出:123.45
System.out.println(map.get("key2")); // 输出:678.90
阅读全文