如何在列表中映射具有通用名称的 JSON 对象?
How do I map a JSON object with generic names in a list?
所以我的服务器收到了这种 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
我很难弄清楚如何映射此测试 7。它是一个对象,带有一个名为 RAW,X 的字符串数组列表。据我所知,X 可以是任何数量。谁能想出一个巧妙的方法来做到这一点?
简单的说
就解决了
val values : Map<String, List<List<Float>>>
所以我的服务器收到了这种 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
我很难弄清楚如何映射此测试 7。它是一个对象,带有一个名为 RAW,X 的字符串数组列表。据我所知,X 可以是任何数量。谁能想出一个巧妙的方法来做到这一点?
简单的说
就解决了val values : Map<String, List<List<Float>>>