STRING 转 Map<String, Object> java
时间: 2023-12-17 12:26:26 浏览: 139
可以使用JSON库将字符串转换为Map<String, Object>。具体实现方法如下所示:
```java
import com.alibaba.fastjson.JSON;
import java.util.Map;
public class StringToMap {
public static void main(String[] args) {
String jsonString = "{\"a\":1,\"b\":2}";
Map<String, Object> map = JSON.parseObject(jsonString, Map.class);
System.out.println(map);
}
}
```
输出结果为:{a=1, b=2}。
相关问题
Java8 Map<String, Object> map转成Map<String,String>
在Java 8中,如果你有一个`Map<String, Object>`类型的映射,想要转换为`Map<String, String>`,你可以通过遍历原始映射并检查每个值是否是字符串来实现。如果值是字符串,直接将其添加到新映射中;如果不是,你可以选择抛出异常、忽略非字符串值或者提供一个默认处理策略。
下面是一个简单的示例代码片段:
```java
Map<String, String> stringMap = new HashMap<>();
Map<String, Object> objectMap = ... // 原始对象映射
objectMap.forEach((key, value) -> {
if (value instanceof String) {
stringMap.put(key, (String) value);
} else {
// 这里可以处理非字符串的情况
throw new IllegalArgumentException("Value is not a string for key " + key);
// 或者可以选择忽略:
// continue;
// 或者提供默认值:
// stringMap.put(key, "default_string_value");
}
});
```
这样,你就得到了一个新的只包含字符串键值对的`Map<String, String>`。
Java String转 List<Map<String, Object>>
首先,需要明确一下字符串的格式。如果字符串是一个JSON数组的话,可以使用JSON库来将其转化为List<Map<String, Object>>。以下是一个示例代码:
```
import com.alibaba.fastjson.JSON;
import java.util.List;
import java.util.Map;
public class StringToListMap {
public static void main(String[] args) {
String jsonString = "[{\"id\":1,\"name\":\"张三\"},{\"id\":2,\"name\":\"李四\"}]";
List<Map<String, Object>> list = JSON.parseObject(jsonString, List.class);
System.out.println(list);
}
}
```
如果字符串不是JSON数组格式,而是以某种特定的分隔符分割的,可以使用String的split方法将其分割为一个个字符串,然后再将这些字符串转化为Map对象,最终将Map对象添加到List中。以下是一个示例代码:
```
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class StringToListMap {
public static void main(String[] args) {
String string = "1,张三;2,李四";
String[] array = string.split(";");
List<Map<String, Object>> list = new ArrayList<>();
for (String s : array) {
String[] split = s.split(",");
Map<String, Object> map = new HashMap<>();
map.put("id", split[0]);
map.put("name", split[1]);
list.add(map);
}
System.out.println(list);
}
}
```
以上代码中,字符串的格式为"id,name"的形式,每个Map对象有两个键值对。可以根据实际需求进行修改。
阅读全文