如何使用 GSON 反序列化 json 数据?

How to deserialize a json data using GSON?

    [{"contacts": 
     [
        {
            "name": "Ramesh Sippi",
            "email": "ramesh.sippi@gmail.com",
            "phone": 9972366543,
            "officePhone": 80012345676,
            "latitude": 18.5204,
            "longitude": 73.8567
        }
    ]
}]

我试图反序列化以上 JSON 但它显示:

java.lang.IllegalStateException: Not a JSON Object

解串器 class 是:

public class Deserializer implements JsonDeserializer<List<ContactDetails>> {
@Override
public List<ContactDetails> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
    String CONTACTS = "contacts";
    return new Gson().fromJson(json.getAsJsonArray().getAsJsonObject().getAsJsonArray(CONTACTS),typeOfT);
}}

请帮助我 out.Any 帮助您反序列化的资源或教程。

看起来您的 json 位于 [] 中,这表示一个数组。尝试:

{
    "contacts": 
     [
        {
            "name": "Ramesh Sippi",
            "email": "ramesh.sippi@gmail.com",
            "phone": 9972366543,
            "officePhone": 80012345676,
            "latitude": 18.5204,
            "longitude": 73.8567
        }
    ]
}

json.getAsJsonArray().getAsJsonObject()json.getAsJsonObject() 相同,这就是您出现异常的原因。

您的意思可能是 json.getAsJsonArray().get(0).getAsJsonObject()