在使用Gson进行解析时,如果json中有整数,如下图:
{
"virtualCardNum":"2130118030000001015",
"Brdh":"17611453523",
"Xb":null,
"pin":1,
"addr":"beijing"
}
java代码:
public String editUser(String paramsJson) {
wsLog.info("进入修改用户接口信息\n" + paramsJson);
Map<String, Object> resultMap = null;
Map<String, Object> params = null;
try {
//①通过jackson解析
ObjectMapper mapper = new ObjectMapper();
params=mapper.readValue(paramsJson, Map.class);
//②通过gson进行解析
JSONObject json = JSONObject.fromObject(paramsJson);
params = new Gson().fromJson(paramsJson, new TypeToken<HashMap<String, Object>>() {
}.getType());
} catch (Exception e) {
通过gson方式解析得到的params为:
{virtualCardNum=2130118030000001015, pin=1.0, addr=beijing, Xb=null, Brdh=17611453523}
注意到,解析出来的pin直接变成了double类型 ,因为在后面需要进行匹配,所以一直匹配不上。解决不了,所以引用了几个jackson的包直接用方式①进行解析。
通过方式①解析出来的数据为:
{virtualCardNum=2130118030000001015, Brdh=17611453523, Xb=null, pin=1, addr=beijing}
没有出现类型转换的问题。