iOS Parsen von JSON und AFNetworking

Ich bin das konsumieren eines web service mit Hilfe der AFNetworking tools wie dieses:

NSURLRequest *request = [NSURLRequest requestWithURL:url];

AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
    [self GotJSONSuccess:JSON :response ];
} failure: nil ];

[operation start];

Der web service antwortet und gibt mir die folgende json:

[
{
    "statusid": 1,
    "statusdesc": "ASSIGNED"
},
{
    "statusid": 2,
    "statusdesc": "COMPLETED"
},
{
    "statusid": 3,
    "statusdesc": "IN TRANSIT"
},
{
    "statusid": 4,
    "statusdesc": "DELAYED"
},
{
    "statusid": 5,
    "statusdesc": "ON HOLD"
}
]

Bin ich mit den folgenden versuchen zum Parsen der json:

- (void)GotJSONSuccess: (NSString*) JSON : (NSHTTPURLResponse*) response
{

NSString *newString = [NSString stringWithFormat:@"%@",JSON];

NSLog(@"response: %@", JSON);
NSData* data = [newString dataUsingEncoding:NSUTF8StringEncoding];
NSError* error;
id jsonObjects = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

if (error){
    NSLog(@"error is %@", [error localizedDescription]);
    return;
}

NSArray *keys = [jsonObjects allKeys];

for (NSString *key in keys){
    NSLog(@"%@ is %@",key, [jsonObjects objectForKey:key]);
}
}

Jedoch der code fällt in die Fehler-block und die Ausgabe ist
"Der Vorgang konnte nicht abgeschlossen werden. (Kakao Fehler 3840.)"

Was mache ich falsch, analysieren diese einfache json?

Gibt es ein besseres parsing-Ansatz als die, die ich nehme?

Ich möchte zu halten mit den nativen iOS-Klassen und-Methoden für die Analyse, wenn möglich.

  • Wenn man sich in FoundationErrors.h (oder suchen Sie einfach Ihr Projekt, einschließlich verknüpfter Rahmen, für 3840, das ist, was ich getan habe), wirst du sehen, dass der Fehler entspricht NSPropertyListReadCorruptError. Was ist kNilOptions?
  • Jesse - eine Idee, wie man rund um die NSPropertyListReadCorruptError? Hat dieser Punkt etwas falsch mit dem format der JSON-oben?
  • Siddharth - Meine ursprüngliche Frage ist immer noch, dass ich eine Fehlermeldung erhalten, die auf den Aufruf der NSJSONSerialization Linie. Tut alles, was in dem code oben schauen, nicht, dass könnte bewirken, dass Sie nicht zu serialisieren?
InformationsquelleAutor user1247395 | 2013-01-10
Schreibe einen Kommentar