2016-08-19 512 views
2

我正在开发一个安全服务,它将返回一个权限列表,我试图估计json响应对象的大小。这里的一个片样品的数据:有没有简单的方法来估计json对象的大小?

ID = 123 VARIABLENAME = CanAccessSomeContent

我正在寻找来估计将与1500行什么尺寸JSON响应对象的一个​​简单的方法。是否有在线估算工具或其他技术可用于轻松获得粗略的尺寸估算?

回答

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 
1

使用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") 

输出:

Estimated size: 100KB 
Actual size: 99KB 
+0

你可以在c#中提供一个例子吗? – user6604655

1

函数来估计文件大小(的醪JSON-Size & UTF-8 Length节点回购)

function json_filesize (value) { 
    // returns object size in bytes 
    return (~-encodeURI(JSON.stringify(value)).split(/%..|./).length)/1048576 
} 

json_filesize({FOO: '栏'})>> 13

相关问题