2

我在我的 Android 应用程序中使用以下库 -> Google/Gson。 我不知道如何将以下 json String 表示为适当的类来抽象它。

"random_chunks": [
    {
        "2013-01-01T10:00:00+00:00": {
            "available": 61,
            "in_inventory": 61,
            "in_service": 61,
            "percent_in_inventory_available": 100,
            "percent_in_service_available": 100
        }
    },

基本上我们有一个名为“random_chunks”的数组,其中包含一个动态名称为“2013-01-01T10:00:00+00:00”的对象。

这是我的想法:

public class RandomChunks {
    @SerializedName("random_chunks")
    private foo[] chunks;

    public class foo extends Object {
        // Here is where I get stuck
}

如何定位这个随机名称?我不能说@SerializedName("some random string")。想法?

4

1 回答 1

0

你的结构有点奇怪,简洁:

"random_chunks": [
{
    "2013-01-01T10:00:00+00:00": { } 
} , 
.... ]

在我看来,更自然的表达方式是直接使用字段:

 "random_chunks": {
    "2013-01-01T10:00:00+00:00": { },
    "2012-01-01T10:00:00+00:00": { },
    ...
 }

上面的JSON是一个Map,即randomChunks = Map<String, Stuff>

在您的情况下,由于您无法更改格式,我相信可以(但不是很干净)将其表示为地图数组:

 private Map<String, Stuff>[] weirdObjects;

实际上,所有这些地图都会非常无聊,并且只有一个键,即您要查找的一个字段。这不是表示它的最有效方式,但看起来这就是你所得到的。

注意:我对 GSON 不太熟悉,所以我不确定它是否可以处理。不过杰克逊可以。

于 2012-11-13T18:21:26.877 回答