2016-08-19 3 views
2

Я работаю над службой безопасности, которая вернет список разрешений, и я пытаюсь оценить размер объекта ответа json. Вот часть данных образца:Есть ли простой способ оценить размер json-объекта?

ID = 123 VariableName = CanAccessSomeContent

Я ищу простой способ оценить, какой размер объекта ответа JSon будет с 1500 строк. Есть ли онлайн-инструмент оценки или какой-либо другой метод, который я могу использовать, чтобы легко получить приблизительную оценку размера?

ответ

1

Я не уверен, если это то, что вы после этого, как это кажется чрезвычайно основным, но здесь идет:

  1. Первый запуск с 0 строк, кодируют его и измерить размер (мы звоните A).
  2. Затем, получите достойный образец из своей базы данных и кодируйте по 1 строке за раз.
  3. Для каждого из этих выходов вычислите размер и затем сохраните среднее значение (назовем это B).

Теперь X строк, предполагаемая реакция будет JSON X * (B-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

Функция оценки размера файла (Mash из 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

Смежные вопросы