2016-08-19 180 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

相關問題