你总能在JSON数组中嵌套一个JSON对象吗?

时间:2017-09-09 06:02:55

标签: python arrays json

当通过POST,PUT或类似方式发送JSON数据时,如果发送嵌套在数组中的所有对象,这是否重要?

EG。是这个

"""
{ 
  "candle" : {"ask": null,
  "bid": null,
  "complete": "True",
  "mid": {"c": "0.80628", "h": "0.80628", "l": "0.80628", "o": "0.80628"},
  "time": "2017-09-08T17:27:15.000000000Z",
  "volume": "6"}
}
 """

 """
{ 
  "candle" : [{"ask": null,
  "bid": null,
  "complete": "True",
  "mid": {"c": "0.80628", "h": "0.80628", "l": "0.80628", "o": "0.80628"},
  "time": "2017-09-08T17:27:15.000000000Z",
  "volume": "6"}]
}
 """

等效吗

我认为它取决于服务器。但是,如果只有一个对象,只发送对象是最佳做法吗?

或者将所有内容作为数组发送是否常见?

如果我可以发送数组中的所有内容

,它会降低复杂性

4 个答案:

答案 0 :(得分:1)

如果您必须遵循现有协议,则别无选择。

如果你自己设计协议,那么你必须选择。对于(永远)单个对象,数组方法没有优势。但是,如果将来可能出现更多对象,则阵列方法更灵活,面向未来。

答案 1 :(得分:1)

  

我认为它取决于服务器。

是的,服务器通常会期望特定格式的数据。如果您以其他格式发送数据,服务器可能不会知道您在说什么。

  

但是,如果只有一个对象,只发送对象是最佳做法吗?

没有特别的最佳做法,这取决于相关数据。使用数组可以提供更大的灵活性(例如,将来您可能希望接受多个对象),但灵活性可能会令人困惑,或者增加不必要的复杂性。这取决于。

  

或者将所有内容作为数组发送是否常见?

不,数据应以有意义的方式构建。

  

如果我可以发送数组中的所有内容

,它会降低复杂性

我不知道在一般情况下这是怎么回事(相反的情况可能更常见),但如果它与您正在使用的服务有关的具体问题也许您可以将这些反馈提交给服务所有者,他们可以探索更改API。如果它是您的服务,那就去吧 - 使用任何对您有意义的数据格式。

答案 2 :(得分:1)

它们不等同,数组和对象不同。

但这几乎不重要, 在示例1中,您只能有一根蜡烛。 在示例2中,您可以拥有多个蜡烛。 如果你想只代表一支蜡烛,我没有看到任何使用数组的理由。如果你使用object而不是array,那么复杂性(至少计算)会更少。

答案 3 :(得分:0)

它不等同:项目列表不等同于单个项目。