gpt4 book ai didi

javascript - DRYing JSON 有什么众所周知的方法吗

转载 作者:IT老高 更新时间:2023-10-28 12:53:58 28 4
gpt4 key购买 nike

考虑这个 JSON 响应:

[{
Name: 'Saeed',
Age: 31
}, {
Name: 'Maysam',
Age: 32
}, {
Name: 'Mehdi',
Age: 27
}]

这适用于少量数据,但当您想要提供大量数据(例如数千条记录)时,以某种方式防止响应 JSON 中的属性名称重复似乎是合乎逻辑的。

我用谷歌搜索了这个概念(DRYing JSON),令我惊讶的是,我没有找到任何相关的结果。一种方法当然是使用简单的自制算法压缩 JSON,并在使用前在客户端解压缩:

[['Name', 'Age'], 
['Saeed', 31],
['Maysam', 32],
['Mehdi', 27]]

但是,最佳做法比每个开发人员都试图重新发明轮子要好。你们有没有看到一个众所周知的被广泛接受的解决方案?

最佳答案

首先,JSON 并不是表示数据的最紧凑方式。它意味着可以直接解析为一个 javascript 数据结构,该数据结构旨在立即使用,无需进一步解析。如果你想优化大小,那么你可能不希望 self 描述 JSON,你需要让你的代码对如何处理数据和使用它做一些假设,并对接收进行一些手动解析结尾。正是这些假设和额外的编码工作可以为您节省空间。

如果代码已经知道服务器响应的属性名称和格式,则可以将数据作为交替值数组返回:

['Saeed', 31, 'Maysam', 32, 'Mehdi', 27]

或者如果可以安全地假设名称不包含逗号,您甚至可以只返回一个逗号分隔的字符串,您可以将其拆分为多个片段并粘贴到您自己的数据结构中:

"Saeed, 31, Maysam, 32, Mehdi, 27"

或者如果您仍然希望它是有效的 JSON,您可以将该字符串放在这样的数组中,这仅比我的第一个版本稍好,其中项目本身是数组元素:

["Saeed, 31, Maysam, 32, Mehdi, 27"]

这些假设和紧凑性将更多的责任放在您自己的 javascript 上解析数据,但正是移除了您开始使用的完整 JSON 的 self 描述性质,这导致其更紧凑的性质。

关于javascript - DRYing JSON 有什么众所周知的方法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089022/

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