Objective-C til JSON Converter
Indsæt Objective-C dictionaries, arrays eller classes. Du får JSON tilbage.
Hvad værktøjet gør
Hvis du har en Objective-C-NSDictionary-literal, en NSArray af models, eller en hel class med en bunke @property-deklarationer, og du bare vil have JSON-repræsentationen — så klarer værktøjet det. Ingen grund til at skrive et engangsprogram, der kalder NSJSONSerialization bare for at se outputtet.
Outputtet matcher det [NSJSONSerialization dataWithJSONObject:options:error:] ville give dig på tilsvarende in-memory object graph. NSDictionary bliver et JSON-object, NSArray bliver en JSON-array, NSString forbliver en string, NSNumber bliver en number eller boolean afhængigt af den underliggende type (@YES/@NO vs @42), NSNull / [NSNull null] bliver null. NSDate kommer ud som en ISO-8601-string — konventionen som de fleste iOS-apps lander på.
Hvis du indsætter en hel class (@interface Order : NSObject ... @end plus en @implementation eller en [[Order alloc] init]-literal med property-assignments), læser converteren hver @property og bygger JSON-objectet med de nøgler. Nestede classes — en Address-property på Order — udvides som nestede JSON-objects. Flere classes indsat sammen kommer ud som flere top-level-entries.
Sådan bruger du det
Tre trin. Virker lige godt for en enkelt dictionary-literal som for en fil fuld af classes.
Indsæt din Objective-C (eller prøv eksemplet)
Smid din kode i venstre editor. En NSDictionary-literal, en NSArray, en class med @property eller en class-instance med assignments — alt går an.
Lad @-prefikserne, pointer-stjernerne og bracket-syntaksen være. Parseren forstår @{...}, @[...] og @"...".
Klik Konvertér
Klik på den grønne Konvertér-knap. Værktøjet læser hver dictionary, array, property og value, og bygger JSONen i ét pass.
Kopiér JSONen
Højre panel giver dig indrykket JSON, klar til en test fixture, en API-mock eller dokumentation. Kopiér og videre.
Hvornår det virkelig redder dagen
iOS API response-fixtures
Indsæt dictionaryen du ville sende til <code>dataWithJSONObject:</code> i en unit test og gem outputtet som en .json-fixture. Holder testen deterministisk.
Dokumentér legacy Obj-C-models
En gammel iOS-codebase har Obj-C-classes, du skal dokumentere i en OpenAPI-spec. Konvertér hver model til JSON for at få skema-formen uden at gætte.
Port til Swift
Som del af Swiftificationen vil du have den JSON-form, hver Obj-C-class implicerer. Hurtig måde at generere den reference, før du skriver Codable-structen.
Backend-handoff
Du har en NSDictionary klar til at POSTe. Indsæt den og tjek en ekstra gang, at JSON-formen matcher API-contractet, før requesten ryger af sted.
Almindelige spørgsmål
Matcher det NSJSONSerialization-outputtet?
Ja — det er målet. NSDictionary/NSArray/NSString/NSNumber/NSNull mapper på standardvis. NSDate stringificeres som ISO-8601 (NSJSONSerialization selv håndterer ikke NSDate — værktøjet tager den udbredte konvention).
Kan jeg indsætte en class med @property-deklarationer?
Ja. Hver @property bliver en nøgle i JSON-objectet, og typen styrer hvordan værdien udsendes (fx NSString * → string, NSNumber * → number). Hvis eksemplet også indeholder property-assignments, ryger de værdier i JSONen; ellers bruges placeholder-værdier.
Hvordan skelnes BOOL og NSNumber?
@YES / @NO og [NSNumber numberWithBool:] giver JSON true/false. Integer- og float-NSNumber-literals (@42, @3.14) giver JSON-numbers — samme regel som NSJSONSerialization bruger, når den kan se det på encoded type.
Hvad med nestede classes og arrays af objects?
Nestede NSDictionary og NSArray foldes helt ud. En class, der har en anden class som property, kommer ud som et nestet JSON-object. En NSArray af model-instances bliver en JSON-array af objects, én per instance.
Gemmes min kode?
Din kode sendes til backendet til konverteringen og persisteres ikke — vi logger ikke payloaden. Men kør alligevel rigtige keys eller tokens ud af eksemplet, før du indsætter.
Håndterer den NSDate, NSURL og andre Foundation-typer?
NSDate bliver en ISO-8601-string. NSURL bliver dens absoluteString. NSData bliver base64. Det er konventionerne de fleste iOS-teams bruger, når de serialiserer, dokumenteret i Foundation.
Andre værktøjer du kan få brug for
Objective-C til JSON spiller godt sammen med resten af værktøjskassen: