map<String, Object>与map<String, String[]>的转换
时间: 2023-11-18 16:55:34 浏览: 30
可以通过遍历原始map的每一个键值对,将值转换为String数组再存入新的map中来实现map<String, Object>到map<String, String[]>的转换,反之亦然。
示例代码如下(Java语言):
```java
// 将map<String, Object>转换为map<String, String[]>
public static Map<String, String[]> objectToStringArrayMap(Map<String, Object> map) {
Map<String, String[]> result = new HashMap<>();
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (value instanceof String[]) {
result.put(key, (String[]) value);
} else if (value instanceof Object[]) {
Object[] objectArray = (Object[]) value;
String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);
result.put(key, stringArray);
} else {
String[] stringArray = new String[]{value.toString()};
result.put(key, stringArray);
}
}
return result;
}
// 将map<String, String[]>转换为map<String, Object>
public static Map<String, Object> stringArrayToObjectMap(Map<String, String[]> map) {
Map<String, Object> result = new HashMap<>();
for (Map.Entry<String, String[]> entry : map.entrySet()) {
String key = entry.getKey();
String[] value = entry.getValue();
if (value.length == 1) {
result.put(key, value[0]);
} else {
result.put(key, value);
}
}
return result;
}
```
使用示例:
```java
Map<String, Object> objectMap = new HashMap<>();
objectMap.put("key1", "value1");
objectMap.put("key2", new String[]{"value2", "value3"});
objectMap.put("key3", 123);
Map<String, String[]> stringArrayMap = objectToStringArrayMap(objectMap);
System.out.println(stringArrayMap); // 输出:{key1=[value1], key2=[value2, value3], key3=[123]}
Map<String, Object> objectMap2 = stringArrayToObjectMap(stringArrayMap);
System.out.println(objectMap2); // 输出:{key1=value1, key2=[Ljava.lang.String;@7f31245a, key3=123}
```