
java如何将string转map
我有一个JSON格式的字符串,想在Java中将其转换成Map对象,该如何实现?
使用Jackson库将JSON字符串转换为Map
可以使用Jackson库中的ObjectMapper类实现。通过调用ObjectMapper的readValue方法,并指定目标类型为Map.class,就能将JSON字符串转换为Map对象。例如:
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = mapper.readValue(jsonString, Map.class);
有没有其它库或方式用于将字符串数据转换成Map对象?
使用Gson和手动解析字符串
Gson是Google提供的一个开源库,也可以轻松将JSON字符串转换为Map。示例代码:
Gson gson = new Gson();
Type type = new TypeToken<Map<String, Object>>(){}.getType();
Map<String, Object> map = gson.fromJson(jsonString, type);
另外,如果字符串格式简单,也可以手动解析,但对于复杂数据结构建议使用现成的库。
我的字符串格式不是JSON,而是类似"key1=value1;key2=value2"这样的格式,如何将这种字符串转成Map?
通过字符串分割和遍历实现转换
需要先根据分隔符将字符串拆分成键值对,然后再通过等号分割得到键和值。示例代码如下:
String str = "key1=value1;key2=value2";
Map<String, String> map = new HashMap<>();
String[] pairs = str.split(";");
for (String pair : pairs) {
String[] kv = pair.split("=");
if (kv.length == 2) {
map.put(kv[0].trim(), kv[1].trim());
}
}