String str ={"ab":13,"cd":34,"ab":13,"ef":56},将str转化成map,请写出代码
时间: 2023-06-16 21:05:58 浏览: 64
由于字符串格式不符合JSON格式,我先假设字符串是这样的格式:`{"ab":13,"cd":34,"ef":56}`。然后可以使用Java中的`Gson`库将字符串转换为Map对象。
需要先在项目中引入`Gson`库。假设字符串已经赋值给了变量`str`,代码如下:
```java
import com.google.gson.Gson;
import java.util.Map;
public class Test {
public static void main(String[] args) {
String str = "{\"ab\":13,\"cd\":34,\"ef\":56}";
Gson gson = new Gson();
Map<String, Object> map = gson.fromJson(str, Map.class);
System.out.println(map);
}
}
```
输出结果为:
```
{ab=13.0, cd=34.0, ef=56.0}
```
注意:`Gson`库默认将JSON中的数字类型解析为`double`类型,因此以上代码中的Map的value类型为`Object`,而不是`Integer`。如果需要将其转换为`Integer`类型,可以手动转换:
```java
import com.google.gson.Gson;
import java.util.Map;
public class Test {
public static void main(String[] args) {
String str = "{\"ab\":13,\"cd\":34,\"ef\":56}";
Gson gson = new Gson();
Map<String, Object> map = gson.fromJson(str, Map.class);
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (value instanceof Double) {
int intValue = ((Double) value).intValue();
map.put(key, intValue);
}
}
System.out.println(map);
}
}
```
输出结果为:
```
{ab=13, cd=34, ef=56}
```
阅读全文