【发布时间】:2020-05-15 14:05:26
【问题描述】:
目前我们正在设计一个将 JSON 对象发送给注册消费者的系统。消费者将能够注册他们想要接收的不同对象类型。目前我们正在设计注册消费者将使用的 JSON 对象。
正如我们所见,定义类型化 JSON 对象有两种可能的方法。
- 已设置或未设置某些属性的通用 JSON 对象:
{
"timestamp": 1589448935,
"customer_id": "123123123123",
"message": {
"title": "Desired Title",
"text": "The Text of the Message",
}
}
{
"timestamp": 1589448935,
"customer_id": "123123123123",
"message": {
"title": "Desired Title",
"text": "The Text of the Message",
"avatar": "http://avatar.io/avatar"
}
}
- 每个 JSON 对象上的类型字段指定此对象来自哪个类型:
{
"timestamp": 1589448935,
"customer_id": "123123123123",
"type": "simple_message",
"message": {
"title": "Title",
"text": "Message",
}
}
{
"timestamp": 1589448935,
"customer_id": "123123123123",
"type": "avatar_message",
"message": {
"title": "Title",
"text": "Message",
"avatar": "http://www.avatar.io/avatar"
}
}
从我们的角度来看,更通用的方法在我们的系统中会更容易处理,因为我们不需要处理多种类型,我们只需附加一个属性或将其保留即可。
从开发人员的角度来看,我可以想象一个类型字段可以帮助开发人员处理此类对象(例如将它们映射到对象)或打开类型字段以执行某些特定逻辑。
最后,对于我的问题 - 当我们想让消费者的生活尽可能轻松时,哪种风格是首选(最佳实践),为什么?是否有类型化 json 对象的最佳实践方法?
【问题讨论】: