2016-08-19 2 views
2

Ich arbeite an einem Sicherheitsdienst, der eine Liste von Berechtigungen zurückgibt, und ich versuche, die Größe des JSON-Antwortobjekts zu schätzen. Hier ist ein Stück Beispieldaten:Gibt es eine einfache Möglichkeit, die Größe eines JSON-Objekts zu schätzen?

ID = 123 Variablenname = CanAccessSomeContent

Ich bin auf der Suche nach einer einfachen Möglichkeit abzuschätzen, welche Größe des json Response-Objekts mit 1500 Zeilen sein. Gibt es ein Online-Schätzwerkzeug oder eine andere Technik, die ich verwenden kann, um eine grobe Größenschätzung zu erhalten?

Antwort

1

Ich bin mir nicht sicher, ob dies ist, was Sie wollen, da dies sehr einfach erscheint, aber hier geht:

  1. Erster Start mit 0 Zeilen, kodieren und messen Sie die Größe (wir werden nenne das A).
  2. Dann erhalten Sie eine anständige Probe aus Ihrer Datenbank und codieren 1 Zeile gleichzeitig.
  3. Berechnen Sie für jede dieser Ausgaben die Größe und speichern Sie dann den Durchschnitt (wir nennen dies B).

Jetzt für X Zeilen, wird die geschätzte json Antwort X * (B-A) + A

So werden, wenn ein 100 Byte war, und B betrug 150 Bytes, für 1500 Zeilen werden wir erhalten:

1500 * (150-100) + 100 = 75100 bytes = 73 KB 
1

Mit Python können Sie die Größe schätzen, indem Sie das Wörterbuch erstellen oder einfach einen erstellen ...

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

Ausgabe:

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

Können Sie ein Beispiel in C# angeben? – user6604655

1

Funktion Dateigröße (Mash von JSON-Size & UTF-8 Length Knoten repos)

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

json_filesize ({foo: 'bar'}) zu schätzen >> 13

Verwandte Themen