在使用Java进行Web开发中,接口数据的传输格式通常会采用JSON格式,但Java本身并不能直接将JSON字符串转换为Map对象,所以需要借助一些工具类来实现这个功能。
public class JsonUtils { /** * 将json字符串转换为Map对象 * * @param jsonString json字符串 * @return Map对象 */ public static Map<String, Object> jsonToMap(String jsonString) throws Exception { ObjectMapper objectMapper = new ObjectMapper(); return objectMapper.readValue(jsonString, new TypeReference<HashMap<String, Object>>() { }); } }
上面的代码使用了Jackson库来实现JSON字符串转换为Map对象的功能。其中,ObjectMapper类是Jackson库的核心类,它可以将JSON字符串转换为Java对象,也可以将Java对象转换为JSON字符串。
在jsonToMap方法中,我们使用了TypeReference类来指定转换的结果类型,这里我们将结果类型指定为Map<String, Object>,即把JSON字符串转换成字符串-对象的键值对集合。
使用这个工具类进行json转换,只需要调用一下jsonToMap方法,传入JSON字符串,就可以得到Map对象了。
String jsonString = "{\"\u59d3\u540d\":\"\u5f20\u4e09\",\"\u5e74\u9f84\":18}"; Map<String, Object> map = JsonUtils.jsonToMap(jsonString); System.out.println(map); // 输出结果:{姓名=张三, 年龄=18}
上面这个示例展示了如何将一个包含姓名和年龄的JSON字符串转换为Map对象。其中,\u59d3\u540d和\u5e74\u9f84是中文的Unicode编码,但转换后的Map对象中,它们被恢复成了中文字符。