做个标记.
public class HashMapDeserializer implements
JsonDeserializer<HashMap<String, Object>> {
public HashMap<String, Object> deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
// TODO Auto-generated method stub
if (json.isJsonNull()) {
return null;
} else if (json.isJsonPrimitive()) {
return null;
} else if (json.isJsonArray()) {
return null;
} else {
return (HashMap<String, Object>) handleObject(json, context);
}
}
private Object deserialize(JsonElement json,
JsonDeserializationContext context) throws JsonParseException {
// TODO Auto-generated method stub
if (json.isJsonNull()) {
return null;
} else if (json.isJsonPrimitive()) {
return handlePrimitive(json);
} else if (json.isJsonArray()) {
return handleArray(json, context);
} else {
return (HashMap<String, Object>) handleObject(json, context);
}
}
private Object handlePrimitive(JsonElement jsonEle) {
JsonPrimitive json = jsonEle.getAsJsonPrimitive();
if (json.isBoolean())
return json.getAsBoolean();
else if (json.isString()) {
String str = json.getAsString();
return json.getAsString();
} else {
BigDecimal bigDec = json.getAsBigDecimal();
try {
bigDec.toBigIntegerExact();
try {
return bigDec.intValueExact();
} catch (ArithmeticException e) {
}
return bigDec.longValue();
} catch (ArithmeticException e) {
}
return bigDec.doubleValue();
}
}
private Object handleArray(JsonElement jsonEle,
JsonDeserializationContext context) {
JsonArray json = jsonEle.getAsJsonArray();
List<Object> list = new ArrayList<Object>(json.size());
for (int i = 0; i < list.size(); i++) {
list.add(deserialize(json.get(i), context));
}
return list;
}
private Map<String, Object> handleObject(JsonElement json,
JsonDeserializationContext context) {
Map<String, Object> map = new HashMap<String, Object>();
for (Map.Entry<String, JsonElement> entry : json.getAsJsonObject()
.entrySet()) {
JsonElement ele = (JsonElement) entry.getValue();
if (ele.isJsonNull()) {
map.put(entry.getKey(), null);
} else if (ele.isJsonPrimitive()) {
map.put(entry.getKey(), handlePrimitive(ele));
} else if (ele.isJsonArray()) {
map.put(entry.getKey(), handleArray(ele, context));
} else {
map.put(entry.getKey(), handleObject(ele, context));
}
}
return map;
}
}
分享到:
相关推荐
Gson是Google开发的一款Java语言编写的库,用于在Java对象和JSON数据之间进行映射。这个库使得Java对象可以轻松地序列化成JSON格式,同时也可以从JSON字符串反序列化回Java对象。在Java开发中,Gson库非常常见,特别...
介绍:Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. 压缩包里有以下文件: ...
Gson是Google开发的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它的全称是Google Gson,主要用于将Java对象转换为JSON格式的字符串,也可以将JSON字符串反序列化为对应的Java对象。在Java开发中,...
Gson,全称为Google Simple JSON,是Google提供的一款开源库,用于在Java对象和JSON数据之间进行映射。这个库使得Java开发者能够轻松地将JSON字符串转换为等效的Java对象,反之亦然。在Java应用程序中,Gson库特别...
包含以下java源文件: com.google.gson.DefaultDateTypeAdapter.class com.google.gson.ExclusionStrategy.class com.google.gson.FieldAttributes.class com.google.gson.FieldNamingPolicy.class ...
Gson是Google开发的一款强大的Java库,用于将Java对象转换为JSON格式的字符串,以及将JSON数据解析回等效的Java对象。这个压缩包包含了Gson库的版本2.8.1,它提供了两个主要的组件:`gson-2.8.1.jar`和`gson-2.8.1-...
GSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。 Gson是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个JSON字符串...
赠送jar包:gson-2.8.0.jar; 赠送原API文档:gson-2.8.0-javadoc.jar; 赠送源代码:gson-2.8.0-sources.jar; 赠送Maven依赖信息文件:gson-2.8.0.pom; 包含翻译后的API文档:gson-2.8.0-javadoc-API文档-中文...
赠送jar包:gson-2.8.6.jar; 赠送原API文档:gson-2.8.6-javadoc.jar; 赠送源代码:gson-2.8.6-sources.jar; 赠送Maven依赖信息文件:gson-2.8.6.pom; 包含翻译后的API文档:gson-2.8.6-javadoc-API文档-中文...
json我们在网络请求中经常用到,最近最火的微信小程序开发中... 就会报错,因为对于嵌套类型的json它是解释不出来的,这时就需要用到com.google.gson.Gson.jar了。资源中提供了jar包与代码示例,一句代码解决您的问题。
Gson库是Google开发的一个Java库,用于在Java对象和JSON数据之间进行映射。它的全名是Google Simple JSON,其版本2.6.2在Android开发中被广泛使用,尤其是在处理JSON序列化和反序列化任务时。Gson库通过提供`Gson`类...
Gson JAR包是Google推出的一款功能强大的Java库,它主要用于在Java对象和JSON格式数据之间进行转换。Gson库提供了简单而直观的API,使得开发者可以轻松地将Java对象序列化为JSON格式的字符串,或者将JSON字符串反...
Gson是Google推出的一款强大的Java库,主要用于在Java对象与JSON数据之间进行相互转换。它的全称是Google Simple JSON,自2008年发布以来,已经成为了Java开发者处理JSON数据的一个常用工具,尤其是在Android开发中...
赠送jar包:gson-2.8.9.jar; 赠送原API文档:gson-2.8.9-javadoc.jar; 赠送源代码:gson-2.8.9-sources.jar; 赠送Maven依赖信息文件:gson-2.8.9.pom; 包含翻译后的API文档:gson-2.8.9-javadoc-API文档-中文...
gson-2.8.6.jar下载,gson是Google开发的一款优秀的Java JSON解析库。它可以将Java对象转换成JSON字符串,也可以将JSON字符串转换成Java对象。gson库简单易用,性能良好,所以很受欢迎,被广泛应用于Android和Java项目中...
标题"Google gson jar包"暗示了我们讨论的是Google Gson库的Java档案文件(JAR),它包含了所有必要的类和资源,使开发者能够在项目中直接使用Gson功能。JAR文件通常在Java开发中用于封装库,以便在应用程序中作为...
Gson是Google开发的一个Java库,用于在Java对象和JSON数据之间进行映射。这个库使得Java对象可以被转换为JSON字符串,同时也可以将JSON文本解析回等效的Java对象。Gson-2.8.6.jar是这个库的特定版本,其中包含了所有...
谷歌Gson库是Java开发中广泛使用的JSON解析和序列化工具,版本2.8.0是其一个稳定且功能丰富的版本。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。...
截止至2018-11-27,github上com.google.gson.Gson 最新的2.8.5jar包。强大的json字符串解析功能及将字符串转换为json格式。我16年上传的免费下载的2.8.0版本不知道为什么变成下载需要50分了
Gson是Google的一个开源项目,可以将Java对象转换成JSON,也可能将JSON转换成Java对象。 Gson里最重要的对象有2个Gson 和 GsonBuilder Gson有2个最基本的方法 1) toJson() – 转换java 对象到JSON 2) from...