首页 > 解决方案 > 生成带有索引项表示的集合的 JSON

问题描述

是否有一些库可以生成 JSON 对象,其中集合表示为一组编号的项目?

当使用例如 GSON 库并具有这样的类时:

`class Bus {
    List<Pasenger> passengers;

    public Bus(List<Pasenger> passengers) {
        this.passengers = passengers;
    }
}`

GSON 像这样生成 JSON:

`{"bus":{
    "passengers":[
    {"name":"John","familiName":"Smith"},
    {"name":"Marry","familiName":"James"}
    ]
}}`

但我被要求生成 JSON,其中集合由每个项目表示,每个项目都有其索引。像这样:

`{"bus":{
    "passengers[0]":{"name":"John","familiName":"Smith"},
    "passengers[1]":{"name":"Marry","familiName":"James"}
}}`

我深入研究了 GSON 和 FasterXML,但找不到对此功能的支持。有人知道是否有一些图书馆支持这个吗?

任何帮助表示赞赏。

标签: javajsongsonfasterxml

解决方案


您可以创建一个实现 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


推荐阅读