在Java编程中,JSON字符串是非常常见的数据格式。而有些时候,我们希望将JSON字符串转换成Java中的Map对象,以便进行更加方便的数据处理和操作。因此,在本文中,我们将介绍如何编写一个简单而实用的JSON字符串转Map工具类。
首先,我们需要使用Java中自带的JSON库——json.jar。
import org.json.JSONException;
import org.json.JSONObject;
public class JsonUtil {
public static Map json2Map(String jsonStr) {
Map resultMap = new HashMap();
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(jsonStr);
Iterator iterator = jsonObject.keys();
while (iterator.hasNext()) {
String key = iterator.next();
Object obj = jsonObject.get(key);
if (obj instanceof JSONObject) {
resultMap.put(key,json2Map(obj.toString()));
} else {
resultMap.put(key,obj);
}
}
} catch (JSONException e) {
e.printstacktrace();
}
return resultMap;
}
}
上述代码中的 json2Map() 方法可将 JSON 字符串转换为 Java 的 Map 对象。该方法首先通过传入的 jsonStr 字符串创建一个 JSONObject 对象,然后通过 JSONObject 对象的 keys() 方法获取所有的键值对,遍历其中的每一个键值对并将其转换为 Map 对象中的键值对。
此外,json2Map() 方法还需注意其递归调用形式,以处理嵌套的 JSON 字符串。
最后,我们可以通过以下代码使用 JsonUtil 工具类:
public static void main(String[] args) {
String jsonStr = "{\"name\":\"Tom\",\"age\":20,\"addr\":{\"province\":\"Guangdong\",\"city\":\"Shenzhen\"}}";
Map resultMap = JsonUtil.json2Map(jsonStr);
System.out.println(resultMap.get("name").toString());
System.out.println(resultMap.get("age").toString());
Map addrMap = (Map) resultMap.get("addr");
System.out.println(addrMap.get("province").toString());
System.out.println(addrMap.get("city").toString());
}
Tom
20
Guangdong
Shenzhen
以上便是本文的全部内容,除需注意的是,该工具类仅支持简单的 JSON 字符串转换,并不包含其他的 JSON 处理操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。