有什么众所周知的干燥方法吗

考虑以下JSON响应:

[{
姓名:“赛义德”,
年龄:31
}, {
姓名:'Maysam',
年龄:32
}, {
名称:“Mehdi”,
年龄:27
}]

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

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

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

然而,一个最佳实践将比每个试图重新发明轮子的开发人员都要好。你们有没有看到一个广为接受的解决方案

首先,JSON并不是表示数据的最简洁的方式。它意味着可以直接解析为javascript数据结构,设计用于即时消费,无需进一步解析。如果您想优化大小,那么您可能不需要自描述JSON,您需要允许您的代码对如何处理数据、使用数据以及在接收端执行一些手动解析进行一系列假设。这些假设和额外的编码工作可以节省空间

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

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

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

“赛义德,31岁,梅萨姆,32岁,迈赫迪,27岁”

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

[“Saeed,31岁,Maysam,32岁,Mehdi,27”]

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

发表评论