J'ai un service OData qui peut renvoyer des valeurs JSON pour une collection d'objets. Je voudrais pointer une application iPhone sur une collection d'objets JSON hors de ce service (résultats présentés ci-dessous avec un exemple d'enregistrement).Comment puis-je extraire des valeurs JSON imbriquées dans une collection dans l'objectif-C?
Comment puis-je analyser ces valeurs imbriquées? Lorsque je convertis la chaîne de réponse en valeurs JSON, elle saisit uniquement "d" (mon code pour cela est également ci-dessous).
{
"d" : {
"results": [
{
"__metadata": {
"uri": "http://someserver/service.svc/collection(1234L)", "type": "My.Namespace.Type"
}, "Property1": "value1", "Property2": 7274, "Collection1": {
"__deferred": {
"Property3": "http://someserver/service.svc/collection(1234L)/Images"
}
}
},
...
objectif Exemple de code C:
- (void)requestFinished:(ASIHTTPRequest *)request
{
if (request.responseStatusCode == 200)
{
NSString *responseString = [request responseString];
textView.text = responseString;
NSDictionary *responseDict = [responseString JSONValue];
NSArray *keys = [responseDict allKeys];
[self printArray:keys]; // This prints "d"
...
}
}
Ceci est certainement là pour moi. Comment puis-je continuer à enchaîner pour aller plus bas? Est-ce la meilleure façon de creuser pour le tableau de valeurs souhaité? –
Merci pour la mise à jour - bien que cela produise cette exception '- [__ NSArrayM allKeys]: sélecteur non reconnu envoyé à l'instance 0x4c458d0' (notez que je remplace l'initialisation responseDict avec votre deuxième ligne dans mon code ci-dessus) –
j'ai édité, j'espère que c'est clair, laissez-moi savoir si non – chriscatfr