具有一个属性或原始Json数据类型的Json对象?

时间:2018-09-10 22:44:57

标签: json rest

我正在构建用于创建资源的REST API。资源只有一个属性,它是一个相当长且唯一的字符串。我打算将此数据作为JSON发送到API。我看到了两种将数据建模为JSON的选择

  1. 原始JSON字符串数据类型
  2. 具有一个String属性的JSON对象。

两个选项均起作用。

在此情况下,这两个选项中的哪个是首选?为什么呢?

1 个答案:

答案 0 :(得分:2)

返回的基本答案

我个人使用选项2,即:“一个具有String属性的JSON对象。”

此外,在设计方面:我更喜欢返回一个具有键/值的对象。密钥也是提供有关已返回内容的上下文的名称。

仅返回一个字符串,基本上是一个“”或{“”}就缺少该上下文(返回变量的名称。

辩论:原始字符串是Json对象吗?

对于String本身是否是有效的JSON文档似乎也有些困惑。

在以下提到各种技术规范的帖子中,这种混乱和辩论非常明显:Is a primitive type considered JSON?

唯一可以确定的是,具有键值对的JSON对象绝对有效!

关于字符串本身。.我不确定(需要更多阅读)。

更新:回答关于创建/更新实体(发布/放置)

在上面的特定情况下,涉及到一个很大的字符串,“运行到几千字节” ...我的感觉是,这将包含在请求正文中。

在发送数据的特定上下文中,我实际上会习惯使用1或2。此外,似乎1是更优化的(如果您的框架支持),因为有关数据内容的上下文与其余API方法。

但是,如果将来需要再添加一个参数,则必须使用具有多个密钥的JSON实体。