JSON lesen und schreiben, die moderne Art

Wie du es bisher gemacht hast

Finde eine Library für deine Programmiersprache. eine gute Bibliothek ist Gold wert, allerdings sind die meisten veraltet oder in deiner Sprache nicht verfügbar.

Schreibe deine eigene Bibliothek, was sehr viel Anstrengung bedeutet und muss stets aktualisiert werden wenn die API ändert. Du solltest dich allerdings auf deine App konzentrieren.

Lies die API Daten als dynamische, nicht typisierte Werte. Dies ist eine sehr unangenehme Art zu programmieren und macht deine App anfällig für API Änderungen

Wie du es mit quicktype machst

Generiere deine Library. Mit Beispiel API Daten generiert quicktype eine easy-to-use Library in der Sprache deiner App.

Nutze mehr Zeit für deiner App. quicktype kann Datentypen neu generieren denn die APIs ändern, so kannst du den betroffenen App Code einfach aktualisieren sofern nötig.

Greife mit Hilfe auf stark typisierte API Daten zu. Du bekommst mehr aus deiner IDE (Autocomplete, Refacoring) wenn du mit typisierte API Daten arbeitest.

Wie kannst du quicktype nutzen

Webapp

Die wohl einfachste Art ist die Webapp. Kopiere deine JSON Daten in das Textfeld und quicktype generiert automatisch deine Datenstrucktur. Anschliessend kannst du im Einstellungsmenü deine Sprache wählen und die für diese Sprache verfügbaren Einstellungen anpassen.

Terminal

Du kannst quicktype auch lokal auf deinem Computer installieren und offline nutzen. Installieren kannst du quicktype entweder durch npm oder Homebrew:

npm install -g quicktype
brew install quicktype

IDE Extension

Alternativ kannst du auch eine Extension für deine IDE installieren. Diese Extensions sind allerdings noch nicht ausgereift und die Funktionalität noch limitiert.

Funktionen pro Programmiersprache

Sprache C# C++ Elm Go Java
Version 5 / 6
Density Normal / Dense
Array Array / List Array / List
Naming Name Space Name Space / Naming Style Module Name Package Name Package Name
Output Complete / Attributes / Types
Plain types only
Detect maps
Detect enums
Merge similar classes
Sprache JSON Schema Objective-C Simple Types Swift TypeScript
Version 4 / 4.1
Density Normal / Dense
Naming Class Prefix
Output Interface / Implementation Class / Struct
Extra comments Declare unions as named types Generate Convenience Initializers Interfaces only
C-Style Functions Explicitly name unions
Don’t verify JSON.parse result at runtime
Plain types only
Detect maps
Detect enums
Merge similar classes

SaveSave

SaveSave

SaveSave