5

每当这里有人说“我有一个 JSON 对象”时,人们就会(正确地)抱怨“没有 JSON 对象之类的东西!” 但...

你怎么称呼可以用 JSON 表示的数据结构类?

它类似于“Map、List、Number、String 和 Boolean 的有限传递闭包”——也就是说,省略了诸如函数之类的东西以及诸如集合和队列之类的更高级的结构。该类别很有用。显然,用 JSON 完成的一切都使用它。CouchDB(我认为其他面向文档的数据库)使用它。大多数非循环数据结构都包含在其中。

但它叫什么?

4

4 回答 4

3

JSON 只是一种很容易转换为 Javascript 对象的符号。当 JSON 在 Javascript 中具体化(评估)时,它会变成 Javascript 对象/关联数组(取决于表示它的 JSON)。

我认为可以用 JSON 表示的数据结构类就是:“数据结构”。例如,您可以用 JSON 表示二叉树,甚至可以表示列表和地图;这些本身就是特定的数据结构,它们的总称就是“数据结构”。

假设 JSON 只能表示一种特定类型的数据结构(例如,只有树),那么我们可以将 JSON 表示的对象类称为“树”。但 JSON 不仅仅如此;它可以表示不同类型的数据结构,这就是为什么最好说“我这里有这个 JSON,它表示某某数据结构”。

我想如果你真的把它归结起来,JSON 代表一个数据结构,它要么是一个序列,要么是一个包含名称-值对的结构,其中的值可以是原语(ints、strings、floats、booleans、nulls、undefineds),或名称-值对或序列。

再想一想,询问可以用 JSON 表示的数据结构类的名称,就像询问可以用 XML 表示的数据结构类的名称一样。两者都是可以具体化为实际对象的抽象符号。

TL; 博士;只需将其称为对象,或通过其实际的数据结构名称即可。这就像说“XML 对象”。XML 表示的结构类没有通用名称。XML 可以表示一个对象,就像 JSON 可以表示一个对象一样。

于 2011-08-27T00:35:00.420 回答
2

你可以称它们为“JSON-compatible”或“JSON-serializable”。

于 2011-08-27T15:17:35.590 回答
0

我认为这个问题有点领先,因为如果您覆盖对象上的序列化,任何对象都可以用 JSON 表示。

现在,如果您的意思是,哪些对象可以本地表示为 JSON,这取决于您的语言和环境。

于 2011-08-27T00:36:08.257 回答
0

有 JSON 对象吗?没有。它不采用它被序列化的对象类型吗?如上

如果 JSON 是一种数据交换格式,并且 JSON 格式的结果文件遵循规范,那么它不会跟踪您有一个项目数组或项目列表,而不是对象吗?

于 2011-08-27T01:02:48.530 回答