- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
考虑这个 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/
前段时间翻到几条留言,问: “配置即代码和基础设施即代码一样吗?” “配置即代码是什么?怎么都是基础设施即代码?” 我们都是知道,DevOp的快速发展,让服务器管理与配置的时间大大减少,配置即代
我是否应该始终将/.well-known/acme-challenge暴露在服务器上? 这是我的HTTP配置: server { listen 80; location '/.well-known
假设我运行请求GET https://graph.microsoft.com/v1.0/me/messages 我得到了 Message 对象的列表。根据文档here id (string) - Un
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 8 年前。 Improv
给定的问题: 给定一个有 n 行、m 个座位的剧院,以及一个已预订座位的列表。给定这些值,确定有多少种方式可以让两个 friend 坐在同一排。 因此,如果剧院的大小为 2x3,并且第一排的第一个座位
通常,对于 OIDC 发现,.well-known URI 可以作为匿名请求。 WSO2 5.3.0 文档中的示例指出必须为请求提供管理员级凭据: https://docs.wso2.com/disp
我是identityserver4的新手,最近看到identityserver团队提供的Quickstart8示例,里面包含3个项目 1.Identityserver2. Api 3.当我部署到 ii
我是一名优秀的程序员,十分优秀!