美文网首页
gson 转Map int 变double

gson 转Map int 变double

作者: satisfying | 来源:发表于2019-01-05 09:58 被阅读0次
    gson = new GsonBuilder()
                        .registerTypeAdapter(
                                new TypeToken<TreeMap<String, Object>>() {
                                }.getType(),
                                new JsonDeserializer<TreeMap<String, Object>>() {
                                    @Override
                                    public TreeMap<String, Object> deserialize(
                                            JsonElement json, Type typeOfT,
                                            JsonDeserializationContext context) throws JsonParseException {
    
                                        TreeMap<String, Object> treeMap = new TreeMap<>();
                                        JsonObject jsonObject = json.getAsJsonObject();
                                        Set<Map.Entry<String, JsonElement>> entrySet = jsonObject.entrySet();
                                        for (Map.Entry<String, JsonElement> entry : entrySet) {
                                            Object ot = entry.getValue();
                                            if (ot instanceof JsonPrimitive) {
                                                treeMap.put(entry.getKey(), ((JsonPrimitive) ot).getAsString());
                                            } else {
                                                treeMap.put(entry.getKey(), ot);
                                            }
                                        }
                                        return treeMap;
                                    }
                                }).create();
    
    TreeMap<String, Object> map = null;
                Type typeToken = new TypeToken<TreeMap<String, Object>>() {
                }.getType();
                map = gson.fromJson(gsonString, typeToken);
    

    相关文章

      网友评论

          本文标题:gson 转Map int 变double

          本文链接:https://www.haomeiwen.com/subject/aocrrqtx.html