如何缩小 json 响应?

How to minify json response?

你好,最近在一次采访中我经历了这个问题。

如何缩小 json 响应

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

}

这是什么问题。我不知道如何缩小及其背后的过程。谁能解释一下?请

提前致谢。

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

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

您可以解析 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;

您必须在服务器端执行缩小以改善响应大小。我想大多数语言都支持与上述代码段等效的代码。例如,在 php 中,可以这样写(当然,如果您的服务器运行 php):

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

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

另一种方法是将其创建为带有隐式键的数组 - 基本上数组中的第一项映射到键 'name',第二项映射到 'product' 等 - 这需要发件人和消息的接收者确切地知道键的顺序,所以在你的例子中它可以减少到

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

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

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

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

严格来说Json,但有时您必须使用实用的解决方案来提高性能。