2009-08-14 6 views
7

Quelqu'un a-t-il un exemple de code pour créer une charge JSON à envoyer en tant que requête HTTP POST dans Objective-C? Un exemple de la charge utile JSON Je cherche à générer ressemble:Génération d'une charge JSON pour une requête HTTP POST dans Objective-C

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

J'utilise le téléchargement du JSON-cadre de: http://code.google.com/p/json-framework/

Tout exemple de code serait grandement apprécié.

Répondre

17

Vous utilisez déjà json-framework, c'est donc la moitié du travail effectué.

Ce cadre peut prendre n'importe quel objet compatible Key-Value Coding et le traduire en JSON. Il peut s'agir d'un objet Données de base, d'un objet NSDictionary et d'un objet arbitraire tant qu'il prend en charge KVC.

En outre, json-framework ajoute une catégorie qui vous permet d'extraire une chaîne JSON de ces objets à l'aide du message JSONRepresentation.

Ainsi, supposons que vous vouliez utiliser NSDictionary, vous pouvez écrire:

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, c'est génial. parfois, nous n'avons besoin que d'échantillons de code court pour avoir l'idée. ça vaut 2 heures de débogage. Merci! –

+0

@Hamutsi: Merci, je souhaite juste que j'ai obtenu la marque de réponse pour celui-là;) –

+1

oh je l'ai fait, le 10 avril, juste après avoir mis le commentaire :) –

Questions connexes