我一直在遇到某种数据结构,并想知道它是否有名称。它非常接近JSON,但并不完全。规则是:
这是一个非常非常有用的结构。您可以使用它来表示文档,数据库记录,各种消息,http请求,很多东西。我在Freemarker(作为'数据模型'),Mongo和任何使用JSON的东西中遇到过它。
这不是JSON,因为这是一种文件格式,而不是特定数据结构的规范。它不是“对象”,因为对象树可以指向其他事物,如流和函数。它不是DOM。
这是什么?
在办公室周围,我们已经开始将其称为“garg”,用于“泛化论证”。
答案 0 :(得分:0)
这不是真正的JSON,因为这是一种文件格式,而不是特定数据结构的规范。
它可能不是 JSON(因为规范包含语法规则),但您的结构定义定义了与JSON相同的数据结构。
我认为命名这个结构并不有用。在谈论数据时,只需将其称为数据即可。当您需要交换数据时,您需要数据交换格式。现在JSON被证明是一个非常好的。
答案 1 :(得分:0)
JSON不仅仅是一种文件格式。 JSON也是一种数据结构。
来自JSON.org
JSON基于两种结构:
名称/值对的集合。在各种语言中,这是 实现为对象,记录,结构,字典,哈希表,键控 列表或关联数组。
- 醇>
有序的值列表。多数情况 语言,这被实现为数组,向量,列表或序列。
这些是通用数据结构。
答案 2 :(得分:0)
听起来你正在描述一个associative array,可选择排序。
这就是JSON所代表的,除了(我相信)JSON没有强加订购要求。当然,许多其他表示也描述了关联数组,这就是为什么JSON是一种流行的文本序列化。
更新1:JSON不是一个正确的关联数组。它是对象属性的描述。因为它经常被解释为关联数组,所以很多人犯了同样的错误。事实上,“对象符号”是它的正确名称 - 惊喜,惊喜。 :)此外,JSON不是文件格式 - 它是文本序列化或标记语言,它与文件格式不同。
答案 3 :(得分:0)
它是一种携带分层数据的通用数据存储结构。我没有它的通用名称,但如果我要在C ++中实现这样的野兽,我可能会将抽象基类称为Variant
,并按名称命名具体类型:Integer
,Array
,Map
等等。我会把它们放在一个名称空间中,这个名称空间与我使用它们的位置有关 - 或者我可能会在这些类型中加上前缀。我也见过这样的结构,但我不知道是否有一个我认识的名字。 DataStore
,Environment
,StorageBin
或任何通用且暗示存储数据的内容都可以。
但我并不认为自己会调用这样的类层次结构JSON
。如果我需要,我会提供一个JsonSerializer
或其他类似的数据来将这些数据映射到JSON。
答案 4 :(得分:0)
结构是树,其叶子上存储了不同类型的值。 在Boost中,类似的结构称为 Property Tree 。