2009-08-14 10 views
7

Qualcuno ha codice di esempio per creare un payload JSON da inviare come richiesta POST HTTP in Objective-C? Un esempio del carico utile JSON Sto cercando di generare assomiglia:Generazione di un payload JSON per la richiesta HTTP POST in Objective-C

{__metadata:{\"Uri\":\"/NewLoc/\", 
\"Type\":\"Location.NewLoc\"}, \"LocID\":\"100006\", 
\"latitude\": \"40.123456\", \"longitude\": \"-65.876543\", 
\"VisitDate\": \"\\/Date(1249909200000)\\/\", \"type\": \"S\"} 

Sto usando il JSON-quadro scaricato da: http://code.google.com/p/json-framework/

Qualsiasi codice di esempio sarebbe molto apprezzato.

risposta

17

Stai già utilizzando il framework json, quindi è a metà del lavoro svolto.

Questo framework può prendere qualsiasi oggetto compatibile con codifica valore-chiave e tradurlo in JSON. Potrebbe essere un oggetto Core Data, un oggetto NSDictionary e qualsiasi oggetto arbitrario purché supporti KVC.

Inoltre, il framework json aggiunge una categoria che consente di estrarre una stringa JSON da questi oggetti utilizzando il messaggio JSONRepresentation.

Quindi, si supponga di voler utilizzare NSDictionary, si potrebbe scrivere:

NSMutableDictionary* jsonObject = [NSMutableDictionary dictionary]; 
NSMutableDictionary* metadata = [NSMutableDictionary dictionary]; 
[metadata setObject:@"NewLoc" forKey:@"Uri"]; 
[metadata setObject:@"Location.NewLoc" forKey:@"Type"]; 
[jsonObject setObject:metadata forKey:@"__metadata"]; 
[jsonObject setObject:@"100006" forKey:@"latitude"]; 
// ... complete the other values 
// 
NSString* jsonString = jsonObject.JSONRepresentation; 
// jsonString now contains your example strings. 
+0

Aviad, che è impressionante. a volte abbiamo solo bisogno di esempi di codice corto per ottenere l'idea. vale 2 ore di debugging. Grazie! –

+0

@Hamutsi: Grazie, vorrei solo avere il segno di risposta per quello;) –

+1

oh ho fatto, il 10 aprile, subito dopo aver inserito il commento :) –

Problemi correlati