2016-07-21 6 views
0

So als Beispiel, die besser ist es, wenn JSON Gestaltung, die zurückgegeben wird vom Server:Ist es eine gute Idee, Zeichenfolgen für alle Datentypen in JSON zu verwenden?

Ausrichtung1: Zurückgeben von Werten wie die richtigen Typen:

{ 
    "id": 1, 
    "name": "A green door", 
    "price": 12.50, 
    "tags": ["home", "green"] 
} 

Oder

Ansatz2: alle Wrapping Werte in Anführungszeichen wie folgt:

{ 
    "id": "1", 
    "name": "A green door", 
    "price": "12.50", 
    "tags": ["home", "green"] 
} 

Welcher Ansatz ist besser? Was sind die Vor- und Nachteile jedes Ansatzes? Gibt es irgendwelche Kompromisse?

+0

Nun, besiegt es nicht den Punkt, unterschiedliche Typen zu haben? Wenn Sie in einer Situation sind, in der alles * eine Zeichenfolge sein muss, dann verwenden Sie offensichtlich eine Zeichenkette. Wenn Sie nicht sind, warum sollten Sie? –

+1

Hängt davon ab, ob Sie Zahlen, Boolesche Zeichen usw. oder Zeichenfolgen möchten. Nein, es gibt keinen Vorteil, den ich mir für Strings vorstellen kann, außer für numerische Präzision, die über eine bestimmte Programmiersprache im Stapel hinausgeht. –

+0

Letztlich ist dies entweder eine Frage der Meinung oder erfordert Kenntnisse über den Kontext seiner Verwendung. –

Antwort

0

Ein Genauigkeitsverlust ist nicht vorteilhaft. Sie werfen inhärente Bedeutung weg. Wenn es Ihnen aufgrund Ihrer Bewerbung leichter fällt, dies zu tun, dann ist es in Ordnung; Sei dir nur bewusst, was du tust.

+0

Was meinen Sie mit "Genauigkeitsverlust"? –

1

Es ist am besten, nur Anführungszeichen für tatsächliche Zeichenfolgen und nicht für andere Typen wie Ganzzahlen zu verwenden.

Wenn Sie alles als String speichern, wird jede Anwendung, die den JSON parst und einen int erwartet, aber stattdessen einen String erhält, eine Ausnahme auslösen. Es kann sich auch auf die Leistung auswirken, da Strings mehr Speicher belegen als andere Typen.

Je nach Situation könnten Sie natürlich einen Parser schreiben oder finden, der sich um die Typkonvertierung kümmert, aber es ist einfacher, Anführungszeichen wie vorgesehen zu verwenden.

Also, wenn Sie diese JSON in eine vorhandene App Feed, die jeden Typ als eine Zeichenfolge gespeichert erwartet, sehe ich keinen Grund, Anführungszeichen für alle Typen zu verwenden.

Verwandte Themen