【问题标题】:When would I prefer to use json over a query-string?我什么时候更喜欢在查询字符串上使用 json?
【发布时间】:2019-10-29 14:25:19
【问题描述】:

我偶然发现了一个在互联网上找不到答案的问题:我什么时候更喜欢使用 JSON,什么时候我更喜欢使用查询字符串?

非常感谢您的专家对该主题的任何进一步想法。

编码示例也将不胜感激

谢谢!

【问题讨论】:

  • 查询字符串长度有限,json 更适合保存复杂数据。 JSON 是典型的帖子,而查询字符串对于简单的 get 来说更典型
  • 假设您的意思是 application/x-www-form-urlencoded 格式,您的问题并不是很清楚(查询字符串和 JSON 是数据格式的正交特征,而不是相互替代),那么它取决于(因为有 JSON 的一些好处的扩展版本),是(在很大程度上)基于意见的,并且过于广泛(考虑到数据格式的各种变化)。
  • 感谢@chevybow 说得通
  • @昆汀。我想我真的不明白你的答案背后的想法。能否请您进一步详细说明?
  • @guyr79 — 这不是答案。这是一条评论,指出您的问题没有真正的意义(出于三个不同的原因)。

标签: json http query-string


【解决方案1】:

让我们把事情弄清楚:

  1. 查询字符串是位于? 标记之后的URL 片段。例如,在 http://test.com/foo?baz=1 中,片段 baz=1 是该 URL 的查询字符串。
  2. JSON 是一种众所周知的数据格式。我不会在这里深入研究规范(因为它是众所周知的),但例如 {"test":1} 是一个 JSON 字符串。

所以这是两个不同的东西。它不像“这个或那个”,例如您可以将两者结合起来拥有

http://test.com/?{"test":1}

现在您将 JSON 作为查询字符串。请注意,查询字符串格式未标准化,因此完全有效。

如您所见,这两者并没有真正的可比性。除非“查询字符串”实际上是指具体格式,即典型的x=1&y=2&z=3 样式。这两个我们可以比较。 JSON 具有更好的结构优势,您可以嵌套对象,您有数组,您有(很少但仍然)类型。但它的可读性较差,特别是因为 URL 中的某些字符必须转义。而且解析它需要更多时间(虽然不太重要)。

我的方法如下:GET 在 URL 中使用“标准”查询字符串,POST 在正文中使用 JSON。如果您的 GET 变得更复杂,那么将其转换为带有 JSON 的 POST

【讨论】:

  • 非常感谢您的详细解答!非常感谢!
猜你喜欢
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-17
  • 2013-03-25
  • 2012-06-25
  • 1970-01-01
  • 2015-06-17
相关资源
最近更新 更多