我有一个输入json有效载荷:
{
"header": null,
"body": {
"a": "1,2,3,4,5",
"c": "d",
"id": 23.5,
"number": 123
}
}
并且我的程序需要将其转换为以下输出有效负载:
{
"header": null,
"body": {
"a": [{"a":"1"},{"a":"2"},{"a":"3"},{"a":"4"},{"a":"5"},],
"c": "d",
"id": 23.5,
"id2": 23.5,
"number": 123
}
}
在输入和输出中,Header始终为null。我为输入和输出主体创建了一个类:
data class InBody (
val a: String,
val c: String,
val id: Double,
val number: Long
)
data class OutBody (
val a: List<AIndividual>,
val c: String,
val id: Double,
val id2: Double,
val number: Long
)
data class AIndividual(val a: String)
正如您所看到的,两个输入之间所需的转换是最小的。
1.需要将a
拆分为对象列表
1.需要在输出中将id
字段复制到id2
我想使用Gson将json转换为输入模型类,再转换为输出模型类,然后输出json。有没有更简单的方法来代替?
同样,如果我按照这个解决方案去做,如何使用Gson只将json
的body
元素读入InBody
类(并忽略头),并在将OutBody
类转换为json
时也是如此?
如果Gson不是一个合适的图书馆,任何其他的方法都更好,请让我知道。
1条答案
按热度按时间sq1bmfud1#
如果性能不是一个问题(很少是),a会来回地做整个转换。对我来说,不值得麻烦地开始手动做事情,容易出错,当一个新的变化出现时,你必须继续做不安全的代码,需要彻底的测试。