如何将指定JSON格式的String转换为HashMap
没问题,我来帮你把这个JSON字符串转换成Java的Map对象。下面是两种常用的实现方式,你可以根据项目里已有的JSON处理库来选择:
使用Jackson库转换
Jackson是Java生态里非常流行的JSON处理工具,咱们先确保项目里引入了Jackson的核心依赖(如果用Maven的话):
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.2</version> <!-- 可以替换成最新稳定版 --> </dependency>
然后写代码实现转换:
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.Map; public class JsonToMapExample { public static void main(String[] args) { String a = "{ \"colmdl\":[{\"field\":\"srrno\"}, {\"field\":\"loadport\"}], \"suppressClipboardPaste\":true, \"excelSheetName\":\"Grid_sheet\", \"editable\":true, \"excelExportType\":\"Toolbar\" }"; ObjectMapper objectMapper = new ObjectMapper(); try { // 转换为Map,键对应JSON里的字段,值的类型会自动匹配 Map<String, Object> resultMap = objectMapper.readValue(a, Map.class); // 可以验证一下转换结果 System.out.println("colmdl: " + resultMap.get("colmdl")); System.out.println("suppressClipboardPaste: " + resultMap.get("suppressClipboardPaste")); System.out.println("excelSheetName: " + resultMap.get("excelSheetName")); } catch (JsonProcessingException e) { e.printStackTrace(); } } }
这里colmdl对应的值会被自动解析成List<Map<String, String>>类型,其他字段则对应各自的基本类型(Boolean、String),完全符合你的需求。
使用Gson库转换
如果你的项目用的是Google的Gson库,也可以这样做:
先引入Maven依赖:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> <!-- 替换成最新稳定版即可 --> </dependency>
然后编写转换代码:
import com.google.gson.Gson; import java.util.Map; public class GsonJsonToMapExample { public static void main(String[] args) { String a = "{ \"colmdl\":[{\"field\":\"srrno\"}, {\"field\":\"loadport\"}], \"suppressClipboardPaste\":true, \"excelSheetName\":\"Grid_sheet\", \"editable\":true, \"excelExportType\":\"Toolbar\" }"; Gson gson = new Gson(); // 直接转换为Map<String, Object> Map<String, Object> resultMap = gson.fromJson(a, Map.class); // 验证输出结果 System.out.println("editable: " + resultMap.get("editable")); System.out.println("excelExportType: " + resultMap.get("excelExportType")); } }
Gson同样会自动识别每个字段的类型,colmdl会被解析成ArrayList<LinkedTreeMap>(本质也是列表嵌套Map的结构),可以直接使用。
两种方式都能完美实现你的需求,把JSON字符串里的colmdl、suppressClipboardPaste等字段作为Map的键,对应的值也会正确解析。
内容的提问来源于stack exchange,提问作者Mohanraj
相关产品推荐
相关产品推荐

