| 

.NET C# Java Javascript Exception

1
Hallo,

ich stelle mir gerade die Frage ob, oder wie man JSON Daten für verschiedene Umgebungen optimiert übertragen kann. Zum Beispiel sei folgendes Objekt Literal gegeben:

{
'voranme': 'Hans',
'nachname': 'Wurst',
'haustiere': [
{'name': 'Wursti'},
{'name': 'Wuffi'}
]
}


Das is schön und gut so lange man entwickelt, und lange, deutliche Namen einem das Leben leichter machen. Wenn man jetzt aber die Anwendung produktiv laufen lässt wäre es doch nett wenn man Bandbreite sparen könnte indem das Objekt z.B. s aussieht

{
'vn': 'Hans',
'nn': 'Wurst',
'h': [
{'n': 'Wursti'},
{'n': 'Wuffi'}
]
}


Es sind mit Sicherheit nur ein paar Bytes die man so pro Objekt einspart. Wenn man jetzt aber browserseitig an einen kontinuierlichen Stream von eingehenden Updates nachdenkt, liesse sich so doch einiges einsparen.

Ich frage mich allerdings wie man jetzt das Matching der Properties je nach verwendetem Objekt im Client macht. Die Anwendung muss ja dann quasi dynamisch die zu lesenden Properties abhängig von dem was vom Server kommt auslesen. Könnte man jetzt mit Sicherheit über ein (ungetestes) Konstrukt wie folgt, oder so ähnlich abbilden:

var laufZeitProperties = ['vorname', 'vn'];
var laufZeitIndex = 1; //Release | 0 = Debug;

//Je nach Umgebung zu lesende Property
var vorname = jsonResult[laufzeitProperties[laufzeitIndex]];


Jetzt kann ich mir allerdings nicht vorstellen dass das auf diese Art und Weise irgendwie praktikabel ist, und es da nicht eine bessere Lösung gibt. Allerdings habe ich wohl nach den falschen Stichwörtern gesucht, oder die Freitagsblockade ist schon in vollem Gange.

Wer weiss also wie man dieses Problem (von Hand oder per Tooling) elegant lösen kann?
26.04.2013
1 Antwort
0
Praktikabel ist das ganze. Wobei ich dann lieber etwas generischer werden würde und ein object to object Mapper nehmen würde bzw. mir für den passenden Einsatzzweck einen bauen würde.

Was deutlich mehr vorteile bringen kann ist die JSON-Daten gzip-Komprimiert zu übertragen. Ich weiß nicht was du als Client einsetzten willst, aber die Browser-Implementierungen können das von haus aus verarbeiten.
26.04.2013
Floyd 14,6k 3 9
gzip wäre mit Sicherheit die beste Alternative. Es geht aber aktuell um Streaming Geschichten (SignalR). So weit ich weiß spielt gzip mit Streaming nicht wirklich gut zusammen. Von daher dachte ich wäre so etwas in der Art wie ich es beschrieben habe evtl. eine Lösung um den gestreamten Content zu minimieren. Ich muss aber auch noch mal genauer schauen. Die Aussagen bzgl. SignalR/Streaming und gzip sind etwas widersprüchlich.
HalliBaba 29.04.2013

Stelle deine Json-Frage jetzt!