2009-08-14 24 views
7

Czy ktoś ma przykładowy kod do utworzenia ładunku JSON, który zostanie wysłany jako żądanie HTTP POST w Objective-C? Przykład ładunek json czekam na generowanie wygląda następująco:Generowanie ładunku JSON dla żądania HTTP POST w Objective-C

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

Używam JSON-ram pobrany z: http://code.google.com/p/json-framework/

Wszelkie przykładowy kod byłoby bardzo mile widziane.

Odpowiedz

17

Już używasz frameworka json, więc to połowa pracy.

Ta struktura może przyjmować dowolny zgodny obiekt zgodny z kluczem kodowym i tłumaczyć go na JSON. Może to być obiekt Core Data, obiekt NSDictionary i dowolny dowolny obiekt, o ile obsługuje on KVC.

Ponadto, json-framework dodaje kategorię, która pozwala uzyskać ciąg JSON z tych obiektów przy użyciu wiadomości JSONRepresentation.

Więc załóżmy, że chciał wykorzystać NSDictionary, można napisać:

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, to niesamowite. czasami potrzebujemy tylko krótkich próbek kodu, aby uzyskać ten pomysł. to warte 2 godzin debugowania. Dzięki! –

+0

@Hamutsi: Dzięki, po prostu chciałbym otrzymać znak odpowiedzi dla tego;) –

+1

oh zrobiłem, 10 kwietnia, zaraz po zamieszczeniu komentarza :) –