【发布时间】:2019-10-09 23:33:31
【问题描述】:
我想从JSON 创建一个模型,其中键是一个值。 This 是描述的确切问题,但在 iOS 中。我想在 Android 中使用类似的解决方案。基本上我想在 Android 中有一个可解码的等价物。
我正在使用GSON 将JSON 解析为模型。到目前为止,我已经将 JSON 键(在链接中提到)与静态值进行了比较。
JSON:
{
"rows" :
[
{
"_id": "5cdc0ede5c3dcb04bdb3a972",
"emp_code": 187,
"log_id": 361711,
"punch_time": "2019-05-07T04:00:33.000Z",
"pin_type": 1,
"status": 4,
"__v": 0
},
{
"_id": "5cdc40de5c3dcb04bdb3a972",
"emp_code": 111,
"log_id": 361701,
"punch_time": "2019-05-07T04:00:35.000Z",
"pin_type": 101,
"status": 4,
"__v": 0
}
],
"pin_type_text": {
"1": "In Fingerprint",
"4": "In Card",
"101": "Out Fingerprint",
"104": "Out Card"
}
}
每一行中pin_type的值是指pin_type_text中与其key对应的记录。
我正在使用 GSON 来创建模型,这里是模型类:
class MyModel {
var length : Long = 0
var rows = ArrayList<Rows>()
var pin_type_text : String = ""
}
class PinTypeText {
var 1 : String = ""
var 4 : String = ""
var 101 : String = ""
var 104 : String = ""
}
基本上,在类 PinTypeText 中定义的键是在共享的 JSON 中看到的在 Rows 模型中获得的键 'pin_type' 的值。因此,在这种情况下,“PinTypeText”中的键取决于“行”中定义的值。因此,我希望根据“Rows”模型中的“pin_type”值创建“PinTypeText”模型。
问题 :假设将来,'pin_type' 值 - 1, 4, 101, 104 在后端发生变化,我如何在不改变的情况下处理这种情况我的模型。根据这个模型结构,每次后端模型更改时我都需要更改我的模型类
【问题讨论】:
-
您可以做两件事:1.) 要求后端团队修复他们的 API 并提供具有非动态模式的 JSON 格式 2.) 手动解析并希望获得最好的结果
标签: java android json kotlin gson