【问题标题】:How to minify json response?如何缩小json响应?
【发布时间】:2018-07-07 07:38:22
【问题描述】:

您好,最近在一次采访中我遇到了这个问题。

如何缩小 json 响应

    {
name: "sample name",
product: "sample product",
address: "sample address"

}

这是什么问题。我不知道如何缩小及其背后的过程。任何人都可以解释吗?请

提前致谢。

【问题讨论】:

  • {name: "sample name",product: "sample product",address: "sample address"}
  • 仅此而已?我很困惑
  • 投反对票有什么理由吗?

标签: javascript jquery json minify


【解决方案1】:

显而易见的方法是去掉空格。除此之外,您还可以将键映射到更短的内容,例如 a、b、c。

如果你想成为一个混蛋;你可以告诉他们有效的 json 会在键周围加上引号。这似乎是一个js对象,而不是json。

【讨论】:

  • 更短的映射键,好主意!发送!
【解决方案2】:

您可以解析 JSON,然后立即重新序列化解析的对象:

var myJson = `{
    "name": "sample name",
    "product": "sample product",
    "address": "sample address" 
}`;

// 'Minifying' the JSON string is most easily achieved using the built-in
// functions in the JSON namespace:
var minified = JSON.stringify(JSON.parse(myJson));

document.body.innerHTML = 'Result:<br>' + minified;

您必须在服务器端执行缩小才能获得响应大小的改进。我想大多数语言都支持与上述 sn-p 等效的语言。例如,在 php 中可能会这样写(当然,如果您的服务器运行 php):

$myJson = '{
    "name": "sample name",
    "product": "sample product",
    "address": "sample address" 
}';

$minified = json_encode(json_decode($myJson));

【讨论】:

  • 这是否会缩短响应时间
  • 如果您在服务器端执行此操作,则应该这样做。
  • 你是天才)!!
【解决方案3】:

另一种方法可能是将其创建为具有隐式键的数组 - 基本上数组中的第一项映射到键“名称”,第二个映射到“产品”等 - 这需要消息的发送者和接收者都知道正是键的顺序,所以在你的例子中它可以减少到

["样品名称","样品产品","样品地址"]

你真的不能让它比这更短。如果您有带有子键的复杂对象,您可以使用嵌套的多维数组,例如。

["样品名称","样品产品",["样品地址1","样品地址2"]]

这对于多人游戏服务器网络这样的事情来说是一个不错的选择,其中消息大小是减少延迟的主要因素,并且客户端和服务器都知道消息的结构。

它不是严格意义上的 Json,但有时你必须使用务实的解决方案来提高性能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-02
    • 2013-03-06
    • 2021-02-10
    • 2023-01-25
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多