gpt4 book ai didi

java - 使用 GSON 解析 JSON 列表的第一个元素

转载 作者:行者123 更新时间:2023-11-30 06:47:33 24 4
gpt4 key购买 nike

在我的项目中,我使用 GSON 来序列化和反序列化对象。我经常从服务器获取 JSON 格式的对象列表,但我只对列表的第一个元素感兴趣。 @SerializedName 是否可以只获取列表的第一个元素?

我想到了这样的事情:@SerializedName("List[0]")

或者您建议只解析第一个元素而不是整个列表?

最佳答案

您应该使用自定义 JsonDeserializer :

private class MyCustomDeserializer implements JsonDeserializer<MyModel> {

@Override
public MyCustomDeserializer deserialize(JsonElement json, Type type,
JsonDeserializationContext context) throws JsonParseException {

// initialize an instance of your model
MyModel myModel = new MyModel();

JsonArray jArray = (JsonArray) json; // get json array
JsonObject jsonObject = (JsonObject) jArray.get(0); // get first object

// do what you want with the first object
myModel.setParameter(jsonObject.get("parameter").getAsInt());

// ignore next json objects
return myModel;
}
}

然后,像这样初始化您的 Gson 实例:

GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(MyModel.class, new MyCustomDeserializer());
Gson gson = gsonBuilder.create();
MyModel model = gson.fromJson(jsonString, MyModel.class);

如果您想从序列化中排除某些字段,您需要在模型中将它们声明为transient:

private transient String name; // will be ignored from Gson

关于java - 使用 GSON 解析 JSON 列表的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45798047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com