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

时间:2014-12-11 18:45:14

标签: json serialization data-structures type-conversion

我很想知道像树,图,地图或其他更复杂的数据类型这样的复杂数据类型是否可以转换为json格式,并且具有与轻量级对象相同的序列化灵活性。

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

是否有必要让任何数据结构满足这个条件?

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

- 这对json格式有用;

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

请详细说明您的答案!

我正在围绕json和各种数据结构进行一些研究,并且非常欣赏各种各样的意见。

1 个答案:

答案 0 :(得分:0)

通常,你几乎可以完成tree复杂度的所有事情。您不能直接代表graphs(甚至graphs without cycles)之类的内容,但有办法克服此限制。

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

此处出现问题,使用图表,或者只是对JSON中任意对象的单个引用。

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

您可以通过多种方式克服这些限制:

  • 如果这两个对象在同一个数组中,则可以使用strore key / index
  • 而不是引用
  • 更通用的方法是将所有对象存储在单独的数组中,而不是将索引存储到此数组的索引
  • 另一种方法是唯一地命名每个对象,并将它们的名称存储在引用位置

遗憾的是,所有上述解决方案都需要进行后处理才能将伪引用(索引/名称/等)转换为真正的“原生”引用。