目录 Gson 概述与下载 Gson (反)序列化 Java 对象 JsonElement Json 元素 JsonObject Json 对象 JsonArray Json 数组 JsonParser Json 解析 GsonBuilder 构建 Gson
Gson 概述与下载1、Java 解析 Json 最常用的类库有:google 的 Gson、阿里巴巴的 FastJson、以及 Jackson。这些都是非常优秀而且常用的库。 2、GSON 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库,可以快速的将一个 Json 字符转成一个 Java 对象,或者将一个 Java 对象转化为 Json 字符串。 3、gson 在 github 上开源地址:https://github.com/google/gson 二进制开发包下载:gson 二进制开发包下载地址:https://search.maven.org/artifact/com.google.code.gson/gson/2.8.5/jar gson-2.8.4.jar下载、gson-2.8.5.jar下载 Maven 依赖:gson 在 Maven 仓库地址:https://mvnrepository.com/artifact/com.google.code.gson/gson <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId>
Gson (反)序列化 Java 对象1、com.google.gson.Gson 提供 toJson() 和 fromJson() 方法用于序列化与反序列化 Java 对象。 2、Gson 对象的 toJson 方法可以将 Java 基本数据类型、以及 POJO 对象、List、Map 、JsonElement 等转为 json 格式的字符串, 3、Gson 对象的 fromJson 方法做与 toJson 相反的操作,将 json 格式的字符串转为基本数据类型、 POJO 对象、List、Map 、JsonElement 等 对象序列化 | T fromJson(String json, Class<T> classOfT) | 将指定的 Json 反序列化为指定类的对象,如果指定的类是泛型类型,则使用 fromJson(String, Type)方法。 | T fromJson(String json, Type typeOfT) | 将指定的 Json 反序列化为指定类型的对象,如果指定的对象是泛型类型,则此方法很有用,对于非泛型对象,请改用 fromJson(String json, Class<T> classOfT) | T fromJson(JsonElement json, Class<T> classOfT) | 将指定的 json 元素反序列化为指定类型的对象,如果指定的类是泛型类型,则使用 fromJson(JsonElement, Type) 方法。 | T fromJson(JsonElement json, Type typeOfT) | | T fromJson(Reader json, Class<T> classOfT) T fromJson(Reader json, Type typeOfT) | 将从指定字符输入流读取的Json反序列化为指定类的对象,如果指定的类是泛型类型,则调用 {@link#fromJson(Reader,type)} | 序列化为对象 | String toJson(Object src) | 将指定的对象序列化为其等效的Json表示形式,当指定的对象不是泛型类型时,应使用此方法,如果对象是泛型类型,请改用 toJson(object,type). | String toJson(Object src, Type typeOfSrc) | 将指定的对象(包括泛型类型的对象)序列化为其等效的Json表示形式,对于非泛型对象,请改用{@link#toJson(Object)} | String toJson(JsonElement jsonElement) | 将 JsonElement 转换为其等效的JSON表示形式。 | JsonElement toJsonTree(Object src) | 将指定的对象序列化为 JsonElement 的等效表示形式,当指定的对象不是泛型类型时,应使用此方法;如果对象是泛型类型,请改用{@link#toJsonTree(object,type)} | JsonElement toJsonTree(Object src, Type typeOfSrc) | |
API 演示源码:https://github.com/wangmaoxiong/apache-study/blob/master/src/main/java/com/wmx/gson/GsonTest.java JsonElement Json 元素1、JsonObject、JsonArray、JsonPrimitive、JsonNull 都是 JsonElement 的子类,JsonElement 常用方法: JsonElement deepCopy() | 返回此元素的深层副本,克隆。 | BigDecimal getAsBigDecimal() | 将此元素作为 BigDecimal 类型获取,如果元素不是 JsonPrimitive,则引发 ClassCastException, 如果元素不是有效的 BigDecimate,则 @throws NumberFormatException。 如果元素属于 JsonArray 类型,但包含多个元素,则引发 IllegalStateException。 | BigInteger getAsBigInteger() | 将此元素作为 BigInteger 类型获取,如果元素不是 JsonPrimitive,则引发 ClassCastException, 如果元素不是有效的 BigInteger ,则 @throws NumberFormatException。 如果元素属于 JsonArray 类型,但包含多个元素,则引发 IllegalStateException。 | boolean getAsBoolean() | 将此元素作为原始布尔值获取,如果元素不是 JsonPrimitive 并且不是有效的布尔值,则引发 ClassCastException, 如果元素属于 JsonArray 类型,但包含多个元素,则引发IllegalStateException | byte getAsByte() | 将此元素作为原始 byte 值获取,如果元素不是 JsonPrimitive 并且不是有效的布尔值,则引发 ClassCastException, 如果元素属于 JsonArray 类型,但包含多个元素,则引发IllegalStateException | 其它 Java 基本数据类型也是同理: double getAsDouble()、char getAsCharacter()、float getAsFloat()、int getAsInt()、long getAsLong()、short getAsShort() | JsonArray getAsJsonArray() | 将此元素作为 JsonArray 获取,如果元素是其他类型的元素,则会生成 IlleglastateException 异常, 因此最好先调用 isJsonArray() 方法确保该元素是所需的类型,然后再使用此方法。 | JsonObject getAsJsonObject() | 将此元素作为 JsonObject 获取,如果元素是其他类型的元素,则会引发 IlleglastateException 异常, 因此最好先通过调用 isJsonObject() 方法来确保该元素是所需类型之后使用此方法。 | JsonPrimitive getAsJsonPrimitive() | 将此元素作为 JsonPrimitive 获取,如果元素是其他类型的元素,则会引发 IlleglastateException 异常, 因此最好先通过调用 isJsonPrimitive() 方法来确保该元素是所需的类型之后再使用此方法。 JsonPrimitive 值可以是 Java 字符串、Java 基本数据类型及其包装器类型。 | boolean isJsonArray() | 验证此元素是否为数组,如果此元素属于 JsonArray 类型,则返回 true,否则返回 false。 | boolean isJsonNull() | 验证此元素是否表示 null 值,如果此元素的类型为 JsonNull,则返回 true,否则返回 false。 | boolean isJsonObject() | 验证此元素是否为 JsonObject 对象。 | boolean isJsonPrimitive() | 以验证此元素是否为 Java 数据类型。 |
* JsonPrimitive getAsJsonPrimitive(): * 将此元素作为 JsonPrimitive 获取,如果元素是其他类型的元素,则会引发 IlleglastateException 异常, * 因此最好先通过调用 isJsonPrimitive() 方法来确保该元素是所需的类型之后再使用此方法。JsonPrimitive 值可以是 Java 字符串、Java 基本数据类型及其包装器类型。 String json = "[\"本级小计\",368.00,328.00,]"; JsonElement sourceJsonElement = new JsonParser().parse(json); -
关闭
站长推荐 /6
|