Gson将字符串转map时,int、long默认为double类型

来源:互联网 发布:三国杀淘宝 编辑:程序博客网 时间:2024/06/01 08:34
import com.google.gson.*;import com.google.gson.reflect.TypeToken;import java.lang.reflect.Type;import java.util.HashMap;import java.util.Map;import java.util.Set;/** * Created by zzm on 2017/8/25 10:46. */public class Test {    public static void main(String[] args) {        Map<String, Object> map = new HashMap<String, Object>();        map.put("a", 10);        map.put("b", "10");        map.put("c", 10L);        map.put("d", "fsaf");        //Gson gson = new Gson();        Gson gson = new GsonBuilder()                .registerTypeAdapter(                        new TypeToken<Map<String, Object>>() {                        }.getType(),                        new JsonDeserializer<Map<String, Object>>() {                            @Override                            public Map<String, Object> deserialize(                                    JsonElement json, Type typeOfT,                                    JsonDeserializationContext context) throws JsonParseException {                                Map<String, Object> treeMap = new HashMap<String, Object>();                                JsonObject jsonObject = json.getAsJsonObject();                                Set<Map.Entry<String, JsonElement>> entrySet = jsonObject.entrySet();                                for (Map.Entry<String, JsonElement> entry : entrySet) {                                    treeMap.put(entry.getKey(), entry.getValue());                                }                                return treeMap;                            }                        }).create();        String json = gson.toJson(map);        System.out.println(json);        Map map1 = gson.fromJson(json, Map.class);        Map map2 = gson.fromJson(json, new TypeToken<Map<String, Object>>() {        }.getType());        System.out.println(1);    }}

阅读全文
0 0
原创粉丝点击