在来自服务器的JSON响应中,同一属性是否可以基于另一个属性的值而具有不同的类型,还是应该避免使用这种反模式?
示例:
[
{
"value": 1.2,
"valueType": "Numeric"
},
{
"value": false,
"valueType": "Boolean"
}
]
答案 0 :(得分:2)
我不确定希望从单个JSON属性返回多个不同数据类型的用例。如果您觉得有必要,那么最动态的属性将是一个String,该字符串在您的中间层逻辑中具有一系列try / catches来解析您希望的结果。否则,我会尝试将也许要捕获的字段分成多个有意义的字段,以更准确地捕获您要查找的数据。
答案 1 :(得分:2)
执行此操作的方法通常是将值编码为字符串。然后,接收到该值的任何人都可以根据valueType
对其进行解析。最好事先知道类型,但有时您必须处理这种情况。
[
{
"value": "1.2",
"valueType": "Numeric"
},
{
"value": "false",
"valueType": "Boolean"
}
]