在Java开发中,经常会需要将JSON字符串转换为Map。这在处理API数据、配置文件等方面都是非常有用的。下面将介绍如何使用Java将JSON字符串转换为Map。
/** * 将JSON字符串转换为Map * * @param jsonStr JSON字符串 * @return Map对象 */ public static MapjsonToMap(String jsonStr) { Map map = new HashMap<>(); try { JSONObject jsonObject = new JSONObject(jsonStr); for (String key : jsonObject.keySet()) { Object value = jsonObject.get(key); if (value instanceof JSONObject) { value = jsonToMap(value.toString()); } map.put(key, value); } } catch (JSONException e) { e.printStackTrace(); } return map; }
上面的代码使用了json-java库来转换JSON字符串为JSONObject,然后递归地将JSONObject转换为Map。如果JSON字符串不包含嵌套的JSON对象,则直接将对应的键值对添加到Map中。如果有嵌套的JSON对象,则递归地将其转换为Map。
使用上述代码,我们可以轻松地将JSON字符串转换为Map。例如,以下是一段JSON字符串:
{ "name": "John", "age": 30, "address": { "street": "123 Main St", "city": "San Francisco" } }
我们可以使用以下代码将上面的JSON字符串转换为Map:
String jsonStr = "{\"name\": \"John\", \"age\": 30, \"address\": {\"street\": \"123 Main St\", \"city\": \"San Francisco\"}}"; Map<String, Object> map = jsonToMap(jsonStr); System.out.println(map);
输出结果如下:
{ name=John, age=30, address={ street=123 Main St, city=San Francisco } }
可以看到,JSON中的键名和键值已经成功转换为了Map中的键和值。