我遇到了一个 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 类型可以是字符串、对象数组或对象?
2 回答

回首忆惘然
TA贡献1847条经验 获得超11个赞
不,它甚至有时可能是一个好政策。JSON 规范本身并没有说明 JSON 中呈现的对象是什么。这是 API 规范的责任。
您拥有的 API 似乎依赖于fieldType
我猜您用来进行自定义反序列化的鉴别器字段。
这也是使用的策略,RuntimeTypeAdapterFactory
在您的情况下也可能是很好的解决方案。
添加回答
举报
0/150
提交
取消