可以将任何数据结构数据转换为 json 格式吗?



我主要想知道复杂的数据类型(如树,图形,映射或其他更复杂的数据类型(是否可以转换为json格式,并且具有与轻量级对象相同的序列化灵活性。

考虑到 json 格式只是用于文本交换的键/值格式(字段/值或名称/值 - 无论您喜欢哪个,其中值可以是一个或多个,值可以是简单类型或另一个 json 类型(,

任何数据结构都需要满足此条件吗?

  • 数据结构的单个对象可以使用键值或键[数组]结构表示吗?

是的 - 那么这对 json 格式有好处;

- 然后将此数据结构分解为较小的键值结构! 或者可以做什么?

请将您的答案分解为细节!

我只是在围绕json和各种数据结构进行一些研究,非常感谢对此的各种意见。

一般来说,你几乎可以做任何事情,直到tree复杂度。你不能直接表示像graphs(甚至graphs without cycles(这样的东西,但有一些方法可以克服这个限制。

  • 向量和列表可以表示为数组,
  • 树作为数组的数组。

这里有问题,带有图形,或者只是对 JSON 中任意对象的单个引用。

+- Root Object -------------+
|   +-------+   +-------+   |
|   | OBJ_A |   | OBJ_B |   |
|   +-------+   +-------+   |
|   | ref------>|       |   |
|   +-------+   +-------+   |
|    field_a     field_b    |
+---------------------------+

您可以通过多种方式克服此类限制:

  • 如果这两个对象在同一个数组中,则可以对键/索引进行斯特罗
  • 更通用的方法是将所有对象存储在单独的数组中,而不是引用存储此数组的索引
  • 另一种方法是唯一地命名每个对象,并存储它们的名称来代替引用

不幸的是,上述所有解决方案都需要后处理才能将伪引用(索引/名称/等(转换为真正的"本机"引用。

最新更新