Android Gson从json到不同的类
我正在编写我的第一个android应用程序,在将Json数据解析回POJO方面的经验非常有限。我使用的是GSON,它的方法来自json。它在一定程度上起了作用,但并不是所有的课程都能完成 我正在序列化的类是Android Gson从json到不同的类,android,json,gson,pojo,Android,Json,Gson,Pojo,我正在编写我的第一个android应用程序,在将Json数据解析回POJO方面的经验非常有限。我使用的是GSON,它的方法来自json。它在一定程度上起了作用,但并不是所有的课程都能完成 我正在序列化的类是 public class User extends Model { public String id; public String name; public List<User> friends = new ArrayList<User>();
public class User extends Model
{
public String id;
public String name;
public List<User> friends = new ArrayList<User>();
public List<Match> matches = new ArrayList<Match>();
}
是否可以将用户解析为名为User的类。但是,将用户列表放入另一个具有不同名称和更少参数的类中,为列表创建并注册一个类型适配器。创建它看起来像这样:
private final TypeAdapter<List<User>> listOfUsersTypeAdapter = new TypeAdapter<List<User>>() {
@Override public void write(JsonWriter out, List<User> value) throws IOException {
out.beginArray();
for (User user : value) {
out.value(user.id);
}
out.endArray();
}
@Override public List<User> read(JsonReader in) throws IOException {
in.beginArray();
List<User> result = new ArrayList<User>();
while (in.hasNext()) {
User user = new User();
user.id = in.nextString();
}
in.endArray();
return result;
}
}.nullSafe();
我还没有测试过这个,但它应该可以工作。请注意,当您反序列化时,您的用户将不会填写任何他们的朋友或匹配项字段。您可以在后处理步骤中从图形中重建它。或者使用自动完成
Gson gson = new GsonBuilder()
.registerTypeAdapter(new TypeToken<List<User>>() {}.getType(), listOfUsersTypeAdapter)
.create();