gpt4 book ai didi

javascript - 最不同的数据交换格式?

转载 作者:行者123 更新时间:2023-12-04 17:53:25 25 4
gpt4 key购买 nike

JSON 之所以伟大,是因为它得到了广泛的支持,而且机器和人类都易于读写。

YAML 很棒,因为它更易于人类读写,并且支持更多数据类型。

TOML就像 INI 的改进版。

我想针对不同的东西进行优化:可微性。即,当运行标准 diff 时,了解同一文档的两个版本之间发生了什么变化有多容易?工具?

据我所知,Yarn竟然自己创造custom format他们的锁文件只是为了改善这方面。

是否有任何开源 JS 库可用于从对象生成可区分的输出?

最佳答案

Canonicalized然后美化JSON

规范化规范化了 type serializationsorts the fields .

美化后添加空格和行分隔符。

我们需要提出一个美化标准。

我希望看到这种可微性的 YAML 等价物。 也许这就像从 YAML 转换为 JSONC 然后将规范化的 JSONC 转换回 YAML 一样简单。 JSONC 到 YAML 的转换过程也需要标准化。 JSONC 规范器可能还不存在。 绝对不是这么简单。

注意:美化使它不再规范,但对于可微性是必要的。

RFC 提供了一个 sample ES6 JSON canonicalizer .

The following Open Source implementations have been verified to be compatible with JCS:

Open Source Implementations

规范化

原始

  {
"numbers": [333333333.33333329, 1E30, 4.50,
2e-3, 0.000000000000000000000000001],
"string": "\u20ac$\u000F\u000aA'\u0042\u0022\u005c\\\"\/",
"literals": [null, true, false]
}

删除空格并规范化序列化

{"numbers":[333333333.3333333,1e+30,4.5,0.002,1e-27],"string":"EURO$\u000f\nA'B\"\\\\\"/","literals":[null,true,false]}

排序

{"literals":[null,true,false],"numbers":[333333333.3333333,1e+30,4.5,0.002,1e-27],"string":"EURO$\u000f\nA'B\"\\\\\"/"}

美化

{
"literals": [
null,
true,
false
],
"numbers": [
333333333.3333333,
1e+30,
4.5,
0.002,
1e-27
],
"string": "EURO$\u000f\nA'B\"\\\\\"/"
}

关于javascript - 最不同的数据交换格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42447949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com