Y a-t-il un exemple de AFSSTPClient affichant json avec AFNetworking?
La recherche d'un exemple de post json avec AFHTTPClient
. Je vois qu'il y a un postPath méthode qui prend un NSDictionary
et la AFJSONEncode méthode retourne un NSData
. Est-il un moyen facile pour sérialiser un objet à NSDictionary
ou est-il un moyen plus facile en utilisant jsonkit?
J'ai juste besoin de mettre l'objet en json d'une API REST.
Mise à JOUR: j'ai Donc essayé le passage d'un dictionnaire de plus, mais il semble se briser sur la sérialisation d'un tableau imbriqué.
Par exemple, si j'ai un objet:
Post* p = [[Post alloc] init];
p.uname = @"mike";
p.likes =[NSNumber numberWithInt:1];
p.geo = [[NSArray alloc] initWithObjects:[NSNumber numberWithFloat:37.78583], [NSNumber numberWithFloat:-122.406417], nil ];
p.place = @"New York City";
p.caption = @"A test caption";
p.date = [NSDate date];
qui s get dictionnaire de données comme suit:
{
caption = "A test caption";
date = "2011-12-13 17:58:37 +0000";
geo = (
"37.78583",
"-122.4064"
);
likes = 1;
place = "New York City";
}
la sérialisation soit un échec complet ou geo va pas être sérialisé comme un tableau mais comme une chaîne littérale comme ("37.78583", "-122.4064");
source d'informationauteur MonkeyBonkey
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à la publication d'un JSON API REST, il devrait y avoir une configuration particulière de la propriété de l'objet JSON clé, droite? Qui est, le serveur s'attend à certaines informations dans certains champs nommés.
Donc ce que vous voulez faire est de construire un
NSDictionary
ouNSMutableDictionary
avec les clés utilisées dans l'API et leurs valeurs correspondantes. Ensuite, il suffit de passer le dictionnaire dans leparameters
argument de la méthode de requête dansAFHTTPClient
. Si leparameterEncoding
propriété du client est défini àAFJSONParameterEncoding
puis le corps de la demande sera automatiquement encodé en JSON.Le mieux et de la manière la plus simple qui consiste à sous-classe AFHTTPClient.
Utiliser ce bout de code
MBHTTPClient
Ensuite dans votre code, appelez simplement
objets est un NSArray (vous pouvez la modifier à NSDictonary) et sera encoder au format JSON