有没有一种简单的方法来估计 json 对象的大小?

use*_*655 7 json

我正在开发一个安全服务,它将返回一个权限列表,我正在尝试估计 json 响应对象的大小。这是一段示例数据:

ID=123 变量名=CanAccessSomeContent

我正在寻找一种简单的方法来估计 1500 行的 json 响应对象的大小。是否有在线估算工具或其他一些我可以使用的技术来轻松获得粗略的尺寸估算?

小智 6

使用 Python,您可以通过创建字典来估计大小,或者只制作一个...

import json
import os
import sys

dict = {}

for a in range(0, 1500):
    dict[a] = {'VariableName': 'CanAccessSomeContent'}

output = json.dumps(dict, indent = 4)   

print ("Estimated size: " + str(sys.getsizeof(output) / 1024) + "KB")

with open( "test.json", 'wb') as outfile:
    outfile.write(output)

print ("Actual size: " + str(os.path.getsize('test.json') / 1024) + "KB")
Run Code Online (Sandbox Code Playgroud)

输出:

Estimated size: 100KB
Actual size: 99KB
Run Code Online (Sandbox Code Playgroud)


Eve*_*ert 1

我不确定这是否是您想要的,因为这看起来非常基本,但这里是:

  1. 首先从 0 行开始,对其进行编码并测量大小(我们称之为A)。
  2. 然后,从数据库中获取一个合适的样本并一次编码 1 行。
  3. 对于每个输出,计算大小,然后存储平均值(我们称之为B)。

现在对于X行,估计的 json 响应将是X * (B-A) + A

因此,如果 A 为 100 字节,B 为 150 字节,则对于 1500 行,我们将得到:

1500 * (150-100) + 100 = 75100 bytes = 73 KB
Run Code Online (Sandbox Code Playgroud)