JSON响应中的相同属性是否可以是数字/布尔值/字符串?

JSON响应中的相同属性是否可以是数字/布尔值/字符串?,json,Json,在服务器的JSON响应中,同一属性是否可以根据另一个属性的值具有不同的类型,或者这是应该避免的反模式 例如: [ { "value": 1.2, "valueType": "Numeric" }, { "value": false, "valueType": "Boolean" } ] 我不确定希望从单个JSON属性返回多个不同数据类型的用例。如果您认为这是必要的,那么最具动态性的属性将是一个字符串,在中间层逻辑中包含一系列try/catch,以

在服务器的JSON响应中,同一属性是否可以根据另一个属性的值具有不同的类型,或者这是应该避免的反模式

例如:

[
  {
    "value": 1.2,
    "valueType": "Numeric"
  },
  {
    "value": false,
    "valueType": "Boolean"
  }
]

我不确定希望从单个JSON属性返回多个不同数据类型的用例。如果您认为这是必要的,那么最具动态性的属性将是一个字符串,在中间层逻辑中包含一系列try/catch,以解析出您希望得到的结果。否则,我会尝试将您试图捕获的字段拆分为多个有意义的字段,以便更准确地捕获您要查找的数据

我不确定希望从单个JSON属性返回多个不同数据类型的用例。如果您认为这是必要的,那么最具动态性的属性将是一个字符串,在中间层逻辑中包含一系列try/catch,以解析出您希望得到的结果。否则,我会尝试将您试图捕获的字段拆分为多个有意义的字段,以便更准确地捕获您要查找的数据

这样做的方法通常是将值编码为字符串。然后,任何接收到该值的人都可以根据
valueType
对其进行相应的解析。如果提前知道类型会更好,但有时您必须处理这种情况

[
  {
    "value": "1.2",
    "valueType": "Numeric"
  },
  {
    "value": "false",
    "valueType": "Boolean"
  }
]

实现这一点的方法通常是将值编码为字符串。然后,任何接收到该值的人都可以根据
valueType
对其进行相应的解析。如果提前知道类型会更好,但有时您必须处理这种情况

[
  {
    "value": "1.2",
    "valueType": "Numeric"
  },
  {
    "value": "false",
    "valueType": "Boolean"
  }
]

是的,可以在没有单独属性的情况下找到类型是的,我不担心是否可以检测到类型。我担心消费者可能很难解码响应。那么更安全的选择是使用相同的字符串类型。似乎是基于观点的,因为我猜静态类型语言(如C#)用户可能更喜欢反序列化为相同的字符串类型,这也会让他们更好地控制数字的解析方式,但其他人(如我)可能更喜欢不必处理这一点,并且额外的解析代码Yes,类型可以在没有单独属性Yes的情况下找到,我不担心我是否能检测出这种类型。我担心消费者可能很难解码响应。那么更安全的选择是使用相同的字符串类型。似乎是基于观点的,因为我猜静态类型语言(如C#)用户可能更喜欢反序列化为相同的字符串类型,这也会让他们更好地控制数字的解析方式,但其他人(如我)可能更喜欢不必处理这一点和额外的解析代码