【发布时间】:2019-04-02 22:36:52
【问题描述】:
我遇到了一个 API,它为“fieldValue”返回不同类型的值,如下所示:
{
"id" : 123,
"fieldType" : "text",
"fieldValue" : "some test"
}
{
"id" : 456,
"fieldType" : "checkbox",
"fieldValue" :
[
{
"checkboxId" : 1,
"name" : "Homer"
},
{
"checkboxId" : 2,
"name" : "Marge"
}
]
}
{
"id" : 789,
"fieldType" : "Select",
"fieldValue" : {
"selectId" : 3,
"value" : "Lisa"
}
}
我正在使用 GSON,它不喜欢“fieldValue”可以是字符串、对象或数组的事实。我已经编写了自定义反序列化器来解析它。 我的问题是 JSON 规范是否允许 JSON 对象具有松散定义的值类型,这意味着 fieldValue 类型可以是字符串、对象数组还是对象?
【问题讨论】:
-
字段类型没有说明符。实际值可以是任何需要的值。阅读 API 以了解类型可以是什么并相应地编写解析器。
-
JSON specification 对
:右侧的类型没有任何限制。