Gson转化其他对象,会将int long 数字类型转化为double
解决:1.使用阿里的fastJson
package JsonUtils; import com.alibaba.fastjson.JSON; import com.google.gson.Gson; import java.util.HashMap; import java.util.Map; public class JsonStringToMap { public static void main(String[] args) { Map<String ,Integer> map = new HashMap<String,Integer>(); map.put("12",134533); // map.put("22","你好"); /** * gson 将包含 int或者long型的数字 json字符串 转化对应对象会出现 double类型 */ Gson gson = new Gson(); String jsonString = gson.toJson(map); System.out.println("json字符串为:"+jsonString); HashMap hashMap = gson.fromJson(jsonString, HashMap.class); System.out.println("使用gson转为mahashMap : "+ hashMap); HashMap hashMap1 = JSON.parseObject(jsonString, HashMap.class); System.out.println("使用fastJson 转为 :"+hashMap1); } }
结果: