Objective-C zu JSON Converter
Paste Objective-C Dictionaries, Arrays oder Klassen rein. Du bekommst JSON zurück.
Was das Tool macht
Wenn du ein Objective-C-NSDictionary-Literal, ein NSArray von Models oder eine komplette Klasse mit einem Haufen @property-Deklarationen hast und einfach die JSON-Repräsentation willst — dieses Tool liefert das. Kein Wegwerfprogramm schreiben, das NSJSONSerialization aufruft, nur um die Ausgabe zu sehen.
Der Output matched das, was [NSJSONSerialization dataWithJSONObject:options:error:] dir auf dem äquivalenten In-Memory-Objektgraph geben würde. NSDictionary wird zum JSON-Objekt, NSArray zum JSON-Array, NSString bleibt String, NSNumber wird Number oder Boolean je nach darunter liegendem Typ (@YES/@NO vs. @42), NSNull / [NSNull null] wird null. NSDate kommt als ISO-8601-String raus — die Konvention, auf die sich die meisten iOS-Apps einigen.
Wenn du eine ganze Klasse reinpasten willst (@interface Order : NSObject ... @end plus @implementation oder ein [[Order alloc] init]-Literal mit Property-Zuweisungen), liest der Konverter jede @property und baut das JSON-Objekt mit diesen Keys. Verschachtelte Klassen — eine Address-Property an Order — werden als verschachtelte JSON-Objekte expandiert. Mehrere Klassen zusammen gepastet kommen als mehrere Top-Level-Einträge raus.
So benutzt du es
Drei Schritte. Funktioniert für ein einzelnes Dictionary-Literal genauso wie für eine Datei voller Klassen.
Objective-C reinpasten (oder das Sample probieren)
Hau deinen Code in den linken Editor. Ein NSDictionary-Literal, ein NSArray, eine Klasse mit @property oder eine Klassen-Instanz mit Zuweisungen — alles in Ordnung.
Die @-Präfixe, Pointer-Sterne und Bracket-Syntax kannst du so lassen. Der Parser versteht @{...}, @[...] und @"...".
Auf Konvertieren klicken
Klick auf den grünen Konvertieren-Button. Das Tool liest jedes Dictionary, Array, jede Property und jeden Wert und baut das JSON in einem Durchgang.
JSON kopieren
Rechts kriegst du eingerücktes JSON, bereit für ein Test-Fixture, einen API-Mock oder Doku. Kopieren und weiter.
Wann das wirklich was bringt
iOS-API-Response-Fixtures
Paste das Dictionary, das du in einem Unit-Test an <code>dataWithJSONObject:</code> übergeben würdest, und speichere die Ausgabe als .json-Fixture. Hält den Test deterministisch.
Legacy-Obj-C-Models dokumentieren
Eine alte iOS-Codebase hat Obj-C-Klassen, die du in einer OpenAPI-Spec dokumentieren musst. Jedes Model nach JSON konvertieren und die Schema-Form ohne Raten rauskriegen.
Port zu Swift
Im Rahmen der Swiftification willst du die JSON-Form, die jede Obj-C-Klasse impliziert. Schneller Weg, die Referenz zu erzeugen, bevor du das Codable-Struct schreibst.
Backend-Handoff
Du hast ein NSDictionary bereit für den POST. Reinpasten und gegenchecken, ob die JSON-Form zum API-Contract passt, bevor der Request rausgeht.
Häufige Fragen
Matched es die NSJSONSerialization-Ausgabe?
Ja — das ist das Ziel. NSDictionary/NSArray/NSString/NSNumber/NSNull mappen auf die Standard-Weise. NSDate wird als ISO-8601 stringifiziert (NSJSONSerialization selbst kümmert sich nicht um NSDate — das Tool übernimmt die weit verbreitete Konvention).
Kann ich eine Klasse mit @property-Deklarationen reinpasten?
Ja. Jede @property wird zu einem Key im JSON-Objekt, und der Typ bestimmt, wie der Wert rauskommt (z.B. NSString * → String, NSNumber * → Number). Wenn das Sample auch Property-Zuweisungen enthält, füllen die Werte das JSON; sonst werden Platzhalter-Werte genommen.
Wie werden BOOL und NSNumber unterschieden?
@YES / @NO und [NSNumber numberWithBool:] ergeben JSON true/false. Integer- und Float-NSNumber-Literale (@42, @3.14) ergeben JSON-Numbers — dieselbe Regel, die NSJSONSerialization anwendet, wenn es den kodierten Typ erkennen kann.
Was ist mit verschachtelten Klassen und Arrays von Objekten?
Verschachtelte NSDictionary und NSArray werden komplett expandiert. Eine Klasse, die eine andere Klasse als Property hat, kommt als verschachteltes JSON-Objekt raus. Ein NSArray von Model-Instanzen wird zu einem JSON-Array von Objekten, eins pro Instanz.
Wird mein Code gespeichert?
Dein Code wird zur Konvertierung ans Backend geschickt und nicht persistiert — wir loggen das Payload nicht. Trotzdem: echte Keys oder Tokens vorher aus dem Sample rausnehmen.
Handhabt es NSDate, NSURL und andere Foundation-Typen?
NSDate wird ein ISO-8601-String. NSURL wird sein absoluteString. NSData wird base64. Das sind die Konventionen, die die meisten iOS-Teams beim Serialisieren nutzen, dokumentiert in Foundation.
Andere Tools, die du brauchen könntest
Objective-C zu JSON passt gut zum Rest des Toolkits: