如何在列表中映射具有通用名称的JSON对象?

时间:2019-06-18 07:44:40

标签: json kotlin mapping parcelable

所以我的服务器上已经有了这种JSON格式(名称和值已更改)

{
"Test.Tester": {
    "test1": "value",
    "test2": "value",
    "test3": 1,
    "test4": 1000,
    "test5": true,
    "test6": [],
    "test7": {
        "RAW,1": [
            [
                "287220",
                "287220",
                "287220",
                "287220",
                "287220",
                "287220",
                "287220"
            ],
            [
                "180",
                "180",
                "180",
                "180",
                "180",
                "180",
                "180"
            ],
            [
                "105",
                "105",
                "105",
                "105",
                "105",
                "105",
                "105"
            ],
            [
                "290220",
                "290220",
                "290220",
                "290220",
                "290220",
                "290220",
                "290220"
            ],
            [
                "190",
                "190",
                "190",
                "190",
                "190",
                "190",
                "190"
            ]
        ],
        "RAW,2": [
            [
                "473460",
                "473460",
                "473460",
                "473460",
                "473460",
                "473460",
                "473460"
            ],
            [
                "474460",
                "474460",
                "474460",
                "474460",
                "474460",
                "474460",
                "474460"
            ],
            [
                "475460",
                "475460",
                "475460",
                "475460",
                "475460",
                "475460",
                "475460"
            ],
            [
                "476460",
                "476460",
                "476460",
                "476460",
                "476460",
                "476460",
                "476460"
            ],
            [
                "477460",
                "477460",
                "477460",
                "477460",
                "477460",
                "477460",
                "477460"
            ]
        ]
    },
    "httpStatusCode": 200,
    "httpStatusReason": "OK"
}

首先,我真的不喜欢他们发送的这种格式,但是他们不能更改它。因此,我必须将东西包装在第一个“ Test.Tester”对象中。而且我使用数据类和Parcelable / Parcelize。

我的对象的一个​​示例可能是这样:

@Parcelize
data class TestRequestDTO(@SerializedName("Test.Tester") val 
test: TestDTO) : Parcelable

@Parcelize
data class TestDTO(
    val test1: String,
    val test2: String,
    val test3: Int
) : Parcelable

我很难弄清楚如何映射此测试。它是一个对象,带有一个字符串数组列表,称为RAW,X。据我所知,X可以是任意数量。谁能想到一个聪明的方法吗?

1 个答案:

答案 0 :(得分:0)

只需说

即可解决
val values : Map<String, List<List<Float>>>