如何解决Web服务的JSON响应-最佳做法问题
| 我正在编写一个返回JSON响应的简单Web服务。它会被大量使用,因此出于性能原因,我想尝试使JSON响应尽可能小。我对设计决策感到不安;一分钱的想法! 来自服务器的JSON响应如下所示:{
\"customers\":
[
{
\"id\": \"337\",\"key\": \"APIfe45904c\"
},{
\"id\": \"338\",\"key\": \"somethingDifferent\"
},{
\"id\": \"339\",{
\"id\": \"340\",\"key\": \"APIfe45904c\"
}
]
}
这里的APIfe45904c
用于大约60-70%的记录,因此我也可以修改JSON响应以删除重复的信息并添加default_key
,即如果未指定key
,则客户端应假定default_key
这个:
{
\"default_key\": \"APIfe45904c\",\"customers\":
[
{
\"id\": \"337\"
},{
\"id\": \"339\"
},{
\"id\": \"340\"
}
]
}
尚无客户端正在使用Web服务,因此不会破坏任何内容。这是好习惯吗?它可以工作,并产生一个小的JSON响应,但是我很矛盾。我喜欢使用该服务的开发人员的KISS原则,但我也希望尽可能小的JSON响应。
我很想用c
替换customers
,用i
替换id
,而用k
替换key
以帮助减小文件大小,但是我想如果要让其他客户端开始使用它会出现问题。我是否应该出于同样的理由放弃default_key
的想法?
每个JSON响应可能不再是200行id / key对,因此我不需要合并分页等。
解决方法
我将按照您所说的保持简单,然后使用gzip对其进行压缩。它可以重复压缩,压缩效果非常好,并且对程序员来说仍然很方便。
有关为AJAX输出gzip标头的指针,请参见此处:gzip编码与JSON兼容吗?
, 除非您有非常特殊的性能需求,否则我总是会选择简洁而不是简洁。特别是对于许多开发人员将使用的API。
, 您应该使用一致的格式,其中每个记录都有一个“ 8”和一个“ 3”字段。您不必在客户端上预处理JSON即可获得带宽损失。
我倾向于像您一样分析我的JSON数据结构,但最后却不值得您节省一点点空间。您的JSON数据结构看起来不错...您看过Twitter \的JSON数据结构吗?现在很丑。
, 我会采用默认的关键思想,但我不会尽量缩短属性名称,因为这可能会造成混淆。也许您可以从Web服务调用(来自查询字符串)中获取一个参数,该参数指定客户端是否希望缩短属性名。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。