Google的JSON解析库Gson的使用

本文介绍了Google的Gson库在解析JSON对象和数组方面的用法,包括单层和多层嵌套的情况。通过定义对应的Java类,使用Gson库能方便地进行JSON数据到对象的转换。详细解析了JsonObject、JsonArray及其互相嵌套的实例,并提供了相应的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  该项目的github地址:Gson
  本篇文章主要参考自:Gson User Guide
  

JsonObject的解析

  比如你有下面这样的一个JsonObject:  

{
    "_id":"OXBGzgE9exNkAP6v8reFIDcZOwrG27MInNXZ4aRXSQUX2GK7OD3i7qXj3HmeYOGg",
    "ttl":7200,
    "created":'2015-12-16T10:51:28.845Z',
    "userId":'5671423088147fb8e63e1d42',
    "name":"某某",
    "school":"某某",
    "phone":"某某",
    "sign":"某某"
}

  先定义一个与其对应的类,如下所示:

public class User {

    private String _id;
    private String ttl;
    private String created;
    private String userId;
    private String name;
    private String school;
    private String phone;
    private String sign;

    //省略get,set,可以通过IDE快速生成

}

  然后一句代码搞定:

//其中的s是你从服务器获取的JSON字符串
User user = new Gson().fromJson(s, User.class);  

  再看一种情况,如果的你的JsonObject变成下面这样:

{
    "_id": "OXBGzgE9exNkAP6v8reFIDcZOwrG27MInNXZ4aRXSQUX2GK7OD3i7qXj3HmeYOGg", 
    "ttl": 7200,
包含以下java源文件: com.google.gson.DefaultDateTypeAdapter.class com.google.gson.ExclusionStrategy.class com.google.gson.FieldAttributes.class com.google.gson.FieldNamingPolicy.class com.google.gson.FieldNamingStrategy.class com.google.gson.Gson.class com.google.gson.GsonBuilder.class com.google.gson.InstanceCreator.class com.google.gson.JsonArray.class com.google.gson.JsonDeserializationContext.class com.google.gson.JsonDeserializer.class com.google.gson.JsonElement.class com.google.gson.JsonIOException.class com.google.gson.JsonNull.class com.google.gson.JsonObject.class com.google.gson.JsonParseException.class com.google.gson.JsonParser.class com.google.gson.JsonPrimitive.class com.google.gson.JsonSerializationContext.class com.google.gson.JsonSerializer.class com.google.gson.JsonStreamParser.class com.google.gson.JsonSyntaxException.class com.google.gson.LongSerializationPolicy.class com.google.gson.TreeTypeAdapter.class com.google.gson.TypeAdapter.class com.google.gson.TypeAdapterFactory.class com.google.gson.annotations.Expose.class com.google.gson.annotations.SerializedName.class com.google.gson.annotations.Since.class com.google.gson.annotations.Until.class com.google.gson.internal.ConstructorConstructor.class com.google.gson.internal.Excluder.class com.google.gson.internal.JsonReaderInternalAccess.class com.google.gson.internal.LazilyParsedNumber.class com.google.gson.internal.LinkedTreeMap.class com.google.gson.internal.ObjectConstructor.class com.google.gson.internal.Primitives.class com.google.gson.internal.Streams.class com.google.gson.internal.UnsafeAllocator.class com.google.gson.internal.bind.ArrayTypeAdapter.class com.google.gson.internal.bind.CollectionTypeAdapterFactory.class com.google.gson.internal.bind.DateTypeAdapter.class com.google.gson.internal.bind.JsonTreeReader.class com.google.gson.internal.bind.JsonTreeWriter.class com.google.gson.internal.bind.MapTypeAdapterFactory.class com.google.gson.internal.bind.ObjectTypeAdapter.class com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.class com.google.gson.internal.bind.SqlDateTypeAdapter.class com.google.gson.internal.bind.TimeTypeAdapter.class com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.class com.google.gson.internal.bind.TypeAdapters.class com.google.gson.reflect.TypeToken.class com.google.gson.stream.JsonReader.class com.google.gson.stream.JsonScope.class com.google.gson.stream.JsonToken.class com.google.gson.stream.JsonWriter.class com.google.gson.stream.MalformedJsonException.class
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值