多层级的string转成map
时间: 2023-07-29 20:14:48 浏览: 117
java代码-NodeTraverse:输出 id 和 level 的映射
如果要将多层级的字符串转换为Map,可以使用递归的方式进行处理。下面是一个Java代码示例:
```java
import java.util.HashMap;
import java.util.Map;
public class StringToMapExample {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":30, \"address\":{\"city\":\"New York\", \"state\":\"NY\"}}";
Map<String, Object> map = stringToMap(jsonString);
System.out.println(map);
}
public static Map<String, Object> stringToMap(String jsonString) {
Map<String, Object> map = new HashMap<>();
String[] keyValuePairs = jsonString.replaceAll("[{}]", "").split(",");
for (String pair : keyValuePairs) {
String[] keyValue = pair.split(":");
String key = keyValue[0].trim();
Object value = null;
if (keyValue.length > 1) {
String val = keyValue[1].trim();
if (val.startsWith("{")) {
value = stringToMap(val);
} else {
value = val;
}
}
map.put(key, value);
}
return map;
}
}
```
这段代码将一个多层级的JSON字符串转换为Map对象。在`stringToMap()`方法中,首先将JSON字符串中的大括号和空格去掉,然后将字符串分割为键值对数组。对于每个键值对,如果它的值是一个JSON对象,则递归调用`stringToMap()`方法进行处理;否则,直接将字符串转换为对象后添加到Map中。最后返回Map对象。
阅读全文