【发布时间】:2015-01-14 03:42:00
【问题描述】:
为什么 JSON 没有关联数组? YAML 可以。
你不能在 JSON 中这样做:
{
productsBySku: [
12J432: {
price: 49.99,
qty_in_stock: 4
},
5X4352: {
price: 29.99,
qty_in_stock: 5
}
]
}
但是在 YAML 中你可以这样做:
productsBySku:
- 12J432:
price: 49.99,
qty_in_stock: 4
- 5X4352:
price: 29.99,
qty_in_stock: 5
从技术层面上来说,我想知道为什么会为 JSON 做出这个决定。
【问题讨论】:
-
JSON 有“关联数组”,它们被称为“对象”。您的 YAML 示例实际上是一个包含两个对象的数组,因此在 JSON 中它将是:
"productsBySku": [ { "12J432": { ... } }, { "5X4352": { ... } } ] -
为什么不呢?因为 JSON 在设计上是 JavaScript 的一个子集。而且 JavaScript 没有关联数组,无论其他人声称什么(对象属性没有排序)。
-
谢谢。如果这个问题不适合 SO,我很抱歉。老实说,我只是想了解事情背后的原因。
标签: arrays json yaml associative-array