String str = "{"specItem":"[红, 大]","specName":"颜色, 尺寸","goodsPrice":2,"stock":0}";
//以上是未转义过的,如果你想直接写在代码中测试的话,记得转义,例如如下:(请勿直接复制下面)
String str = "{\"specItem\":\"[红, 大]\",\"specName\":\"颜色, 尺寸\",\"goodsPrice\":2,\"stock\":0}";
Map<String,String> map = (Map<String,String>) JSON.parse(s);
int stock = Integer.parseInt(map.get("stock"));
此时会报错
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
{"stock":1,"specItem":"[红, 大]","specName":"颜色, 尺寸","goodsPrice":1}
我们可以看到,对于stock来说,他的值并不是字符串"1"
,而是1
;,直接将其转化为String的时候就会报错,相当于写了一个String str = 1;
int stock = Integer.parseInt(map.get("stock").toString);
fastjson将json转为Map<String,String>踩坑
原文:https://www.cnblogs.com/flower1360/p/14271317.html