Incolla Objective-C a sinistra e clicca "Converti" — lo trasformiamo in JSONIncolla codice Objective-C

Cosa fa questo tool

Se hai un literal NSDictionary in Objective-C, un NSArray di model, o una classe intera con un sacco di @property, e vuoi solo la rappresentazione JSON — ci pensa questo tool. Non devi scrivere un programmino usa-e-getta che chiami NSJSONSerialization solo per vedere il risultato.

L'output combacia con quello che ti darebbe [NSJSONSerialization dataWithJSONObject:options:error:] sull'object graph in memoria equivalente. NSDictionary diventa un oggetto JSON, NSArray diventa un array JSON, NSString resta una string, NSNumber diventa number o boolean in base al tipo sottostante (@YES/@NO vs @42), NSNull / [NSNull null] diventa null. NSDate viene emesso come string ISO-8601 — la convenzione su cui la gran parte delle app iOS finisce per allinearsi.

Se incolli una classe intera (@interface Order : NSObject ... @end più un @implementation o un literal [[Order alloc] init] con assegnazioni alle proprietà), il convertitore legge ogni @property e costruisce l'oggetto JSON con quelle chiavi. Le classi annidate — una proprietà Address su Order — vengono espanse come oggetti JSON annidati. Più classi incollate insieme escono come più entry di livello superiore.

Come usarlo

Tre passi. Funziona identico con un singolo literal dictionary o con un file pieno di classi.

1

Incolla il tuo Objective-C (o prova l'esempio)

Butta il codice nell'editor a sinistra. Un literal NSDictionary, un NSArray, una classe con @property o una istanza di classe con assegnazioni — va bene tutto.

Lascia i prefissi @, gli asterischi dei pointer e la sintassi delle parentesi quadre come sono. Il parser capisce @{...}, @[...] e @"...".

2

Clicca Converti

Clicca il pulsante verde Converti. Il tool legge ogni dictionary, array, property e valore, e costruisce il JSON in una sola passata.

3

Copia il JSON

Il pannello di destra ti dà il JSON indentato, pronto per un fixture di test, un mock di API o la documentazione. Copia e vai.

Quando ti toglie davvero dai guai

Fixtures di risposta API su iOS

Incolla il dictionary che passeresti a <code>dataWithJSONObject:</code> in uno unit test e salva l'output come fixture .json. Tiene il test deterministico.

Documentare model Obj-C legacy

Una vecchia codebase iOS ha classi Obj-C da documentare in una spec OpenAPI. Converti ogni model in JSON per ottenere la forma dello schema senza tirare a indovinare.

Porting a Swift

Nel percorso di Swiftification ti serve la forma JSON implicita di ogni classe Obj-C. Modo rapido per generare quella reference prima di scrivere lo struct Codable.

Handoff al backend

Hai un NSDictionary pronto da POST. Incollalo per ricontrollare che la forma del JSON combaci col contratto dell'API prima che la request parta.

Domande frequenti

Combacia con l'output di NSJSONSerialization?

Sì — è proprio l'obiettivo. NSDictionary/NSArray/NSString/NSNumber/NSNull mappano nel modo standard. NSDate viene stringificato come ISO-8601 (NSJSONSerialization di per sé non gestisce NSDate — il tool adotta la convenzione più diffusa).

Posso incollare una classe con dichiarazioni @property?

Sì. Ogni @property diventa una chiave dell'oggetto JSON, col tipo che decide come viene emesso il valore (es: NSString * → string, NSNumber * → number). Se l'esempio include anche le assegnazioni alle proprietà, quei valori finiscono nel JSON; altrimenti si usano valori placeholder.

Come vengono distinti BOOL e NSNumber?

@YES / @NO e [NSNumber numberWithBool:] emettono true/false in JSON. I literal NSNumber interi e float (@42, @3.14) emettono number JSON — la stessa regola che applica NSJSONSerialization quando può dedurlo dal tipo codificato.

E le classi annidate e gli array di oggetti?

I NSDictionary e NSArray annidati vengono espansi completamente. Una classe che ha un'altra classe come proprietà esce come oggetto JSON annidato. Un NSArray di istanze di model diventa un array JSON di oggetti, uno per istanza.

Il mio codice viene memorizzato?

Il codice viene mandato al backend per la conversione e non viene persistito — non logghiamo il payload. Detto questo, mascheriamo chiavi o token reali nell'esempio prima di incollare.

Gestisce NSDate, NSURL e altri tipi Foundation?

NSDate diventa una string ISO-8601. NSURL diventa il suo absoluteString. NSData diventa base64. Sono le convenzioni che usano la maggior parte dei team iOS quando serializzano, documentate in Foundation.

Altri tool che ti possono servire

Objective-C in JSON si sposa bene col resto della cassetta degli attrezzi: