复制package com.fpi.system.utils;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import java.util.*;
/**
* @author: kht
* @date: 2021/12/23
* @description:将json转为Map和HashMap数据结构的方法,便于获取json中的key-value值
*/
public class JsonUtil {
/**
* 将json对象转换为HashMap
* @param json
* @return
*/
public static Map<String, Object> parseJsonMap(JSONObject json) {
Map<String, Object> map = new HashMap<String, Object>(20,50);
// 最外层解析
for (Object k : json.keySet()) {
Object v = json.get(k);
// 如果内层还是json数组的话,继续解析
if (v instanceof JSONArray) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Iterator<JSONObject> it = ((JSONArray) v).iterator();
while (it.hasNext()) {
JSONObject json2 = it.next();
list.add(parseJsonMap(json2));
}
map.put(k.toString(), list);
} else if (v instanceof JSONObject) {
// 如果内层是json对象的话,继续解析
map.put(k.toString(), parseJsonMap((JSONObject) v));
} else {
// 如果内层是普通对象的话,直接放入map中
map.put(k.toString(), v);
}
}
return map;
}
/**将json字符串转换为Map
* @param jsonStr
* @return
*/
public static Map<String, Object> parseJsonstrMap(String jsonStr) {
JSONObject json = JSONObject.fromObject(jsonStr);
Map<String, Object> map = parseJsonMap(json);
return map;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫