【问题标题】:Complex JSON data structure best practice复杂 JSON 数据结构最佳实践
【发布时间】:2014-06-03 16:50:16
【问题描述】:

我想知道哪种 JSON 数据结构更简单,更方便 REST API 消费者。

假设,我们有 POST 方法,它需要请求体中的复杂数据结构。哪种结构更可取?它们是等价的。

1.

{
    SearchPropertiesFilter: [
        { key: 'key1', values: ['value1', 'value2'] },
        { key: 'key1', values: ['value3', 'value4'] },
        { key: 'key2', values: ['value5'] }
    ],
    ResultPropertiesCount: [
        { key: 'key1', count: 100},
        { key: 'key2', count: 500},
    ]
}

2.

{
    SearchPropertiesFilter: {
        'key1': [['value1', 'value2'], ['value3', 'value4']],
        'key2': [['value5']]
    }
    ResultPropertiesCount: {
        'key1': 100,
        'key2': 500
    }
}

一方面,第一个例子对消费者来说可能更简单。 另一方面,第二个示例更短且不包含属性名称。

【问题讨论】:

  • 您可以使用任何您想要的表示格式,没有 REST 约束。如果你想搜索,那么我建议使用 GET 而不是 POST。 POST 用于创建资源,GET 用于获取资源的表示。
  • 是的,我知道,从技术上讲,我可以使用任何一个。但对于消费者来说,哪个更好、更简单?
  • 如果您无法为第一个提供任何好处,那么选择第二个?

标签: json api rest data-structures


【解决方案1】:

definition

JSON 建立在两种结构之上:

名称/值对的集合。在各种语言中,这是 实现为对象、记录、结构、字典、哈希表、键控 列表或关联数组。值的有序列表。多数情况 语言,这被实现为数组、向量、列表或序列。

所以 JSON 已经是一个键值对系统,当key:val 可以使用时,具有类型键和值键的对的冗余有什么意义?

选择第 2 版

【讨论】:

    猜你喜欢
    • 2017-07-02
    • 2014-03-21
    • 2011-07-21
    • 2016-09-21
    • 2021-12-29
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多