微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Web服务的JSON响应-最佳做法问题

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?