2 回答

TA贡献1818条经验 获得超11个赞
我认为您可以创建 Map 而不是 List (如果您不想编写自定义序列化器和反序列化器)。Bus 的构造函数将类似于:
private Map<String, Pasenger> bus = new HashMap<>();
public Bus(List<Pasenger> passengers) {
for (int i = 0; i < passengers.size(); i++){
bus.put("passengers["+i+"]", passengers.get(i));
}
}
对于只有名字的简单乘客,它看起来像
{"bus":
{
"passengers[0]":{"name":"first"},
"passengers[1]":{"name":"second"}
}
}

TA贡献1725条经验 获得超8个赞
您可以创建一个实现 JsonSerializer 的类来指定您希望它如何序列化。
然后在构建 Gson 时注册它: Gson gson = new GsonBuilder().registerTypeAdapter(Bus.class, new BusAdapter()).create();
更多信息:https : //github.com/google/gson/blob/master/UserGuide.md#TOC-Writing-a-Serializer
添加回答
举报