JSON 空对象规范
JSON specification for empty objects
此问题与标准和惯例相关性较高,与this密切相关。
我们在两个不同的团队之间建立了 JSON 合同,即 UI 团队处理基于 React 的框架,服务器团队在 Java 中开发 REST 服务。没有捕获的一件事是应该为“空”对象发送和检索什么。我想知道是否有任何已知的 JSON 约定要求以特定方式发送空对象。
这是我所指的示例
Sample JSON
'Vehicle': {'Make': 'BMW', 'Model': 'Enclave', 'Year' : '2017' }
当像
这样的空对象时
'Vehicle' : {}
从 UI 应用程序发送到 REST 服务,我认为,期望返回相同的对象是公平的。服务器团队抱怨说,由于 service/JSON 映射的性质,当发送空对象时,返回的对象将具有如下所示的空属性:
'Vehicle' : {'Make' : null, 'Model' : null, 'Year' : null}
不幸的是,这是一个在模板协议期间未捕获空对象的明确定义的区域。服务器团队声称这是 JSON 规范中定义的内容,http://www.json.org/
中并不清楚
有关合同的其他信息:
- The REST services are for storage and retrieval of the JSON objects and is not expected to make any modifications to the JSON object.
- There is also no calculation, aggregation or translation of any sort that is expected from the REST services.
- The JSON is sent to additional downstream systems from the middleware services(Server team).
有关此问题影响的其他信息:
- UI application(React based) has issues in merging null values from JSON into immutable structure(for UI consumption). Empty objects are very well handled, however objects with null attributes requires additional overhead.
- REST services are developed in Java due to which the empty objects are always returned with attributes having null values.
问题:
Is it correct for the server team to refer to JSON specification and claim 'when empty objects are sent to REST services(without attributes), it will always be sent back with attributes having null values?
注意:我不是在寻求有关 UI 应用程序中面临的问题或如何在 REST 服务中实现必需的 JSON 结构的帮助。
没有"specification"你问的。这只是服务器和客户端之间的协议问题。对于不存在的属性,服务器团队指定他们的代码 returns null
既不是 "correct" 也不是 "incorrect"。然而,他们确实 "incorrect" 声称 JSON 规范——仅描述 JSON 语法,而不是如何使用它——要求事情以这种方式工作。
however objects with null attributes requires additional overhead.
我对这个说法有点困惑。如果您的下游逻辑在处理 null 值时遇到问题,那么从对象中过滤掉 null 属性 值似乎非常容易且成本低廉。
此问题与标准和惯例相关性较高,与this密切相关。
我们在两个不同的团队之间建立了 JSON 合同,即 UI 团队处理基于 React 的框架,服务器团队在 Java 中开发 REST 服务。没有捕获的一件事是应该为“空”对象发送和检索什么。我想知道是否有任何已知的 JSON 约定要求以特定方式发送空对象。
这是我所指的示例
Sample JSON
'Vehicle': {'Make': 'BMW', 'Model': 'Enclave', 'Year' : '2017' }
当像
这样的空对象时'Vehicle' : {}
从 UI 应用程序发送到 REST 服务,我认为,期望返回相同的对象是公平的。服务器团队抱怨说,由于 service/JSON 映射的性质,当发送空对象时,返回的对象将具有如下所示的空属性:
'Vehicle' : {'Make' : null, 'Model' : null, 'Year' : null}
不幸的是,这是一个在模板协议期间未捕获空对象的明确定义的区域。服务器团队声称这是 JSON 规范中定义的内容,http://www.json.org/
中并不清楚有关合同的其他信息:
- The REST services are for storage and retrieval of the JSON objects and is not expected to make any modifications to the JSON object.
- There is also no calculation, aggregation or translation of any sort that is expected from the REST services.
- The JSON is sent to additional downstream systems from the middleware services(Server team).
有关此问题影响的其他信息:
- UI application(React based) has issues in merging null values from JSON into immutable structure(for UI consumption). Empty objects are very well handled, however objects with null attributes requires additional overhead.
- REST services are developed in Java due to which the empty objects are always returned with attributes having null values.
问题:
Is it correct for the server team to refer to JSON specification and claim 'when empty objects are sent to REST services(without attributes), it will always be sent back with attributes having null values?
注意:我不是在寻求有关 UI 应用程序中面临的问题或如何在 REST 服务中实现必需的 JSON 结构的帮助。
没有"specification"你问的。这只是服务器和客户端之间的协议问题。对于不存在的属性,服务器团队指定他们的代码 returns null
既不是 "correct" 也不是 "incorrect"。然而,他们确实 "incorrect" 声称 JSON 规范——仅描述 JSON 语法,而不是如何使用它——要求事情以这种方式工作。
however objects with null attributes requires additional overhead.
我对这个说法有点困惑。如果您的下游逻辑在处理 null 值时遇到问题,那么从对象中过滤掉 null 属性 值似乎非常容易且成本低廉。