Это странная ошибка, и я не уверен, правильно ли я использую JSON.Когда я получаю ответ от сервера с правильным массивом, JSON проверяет его, обнуляя большинство значений, и я думаю, что он также может быть забыт ключами.
2011-08-01 16:08:15.981 My Alerts[2746:b303] From Server: {"cycleStart":"May 1, 2011","cycleEnds":"May 29, 2011","avg_usage":0,"estimate":0,"totalBudget":0,"Usage":0,"Cost":0}
2011-08-01 16:08:15.982 My Alerts[2746:b303] After JSON: (
0,
0,
0,
0,
"May 29, 2011",
"May 1, 2011",
0
)
Вот мой кодпоказывая, где используется JSON.
NSString *post = [NSString stringWithFormat:@"username=%@&acct=%@", username, account];
NSLog(@"POST: %@", post);
NSData *postData = [NSData dataWithBytes: [post UTF8String] length: [post length]];
// Submit login data
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString: @"http://***.****.***/file1.php"]];
[request setHTTPMethod: @"POST"];
[request setValue: @"application/x-www-form-urlencoded" forHTTPHeaderField: @"Content-Type"];
[request setHTTPBody: postData];
// Retreive server response
NSURLResponse *response;
NSError *err;
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
if (returnData == nil) {
NSLog(@"ERROR: %@", err);
}
NSString *content = [NSString stringWithUTF8String:[returnData bytes]];
NSLog(@"From Server: %@", content); // <---JSON string returned perfectly from server
if (content != @"FAIL")
{
NSArray *viewDetail = [[NSArray alloc] init];
viewDetail = [[[content JSONValue] allValues] mutableCopy]; // <--JSON appears to be chewing it up
NSLog(@"After JSON: %@", viewDetail); // <--Array is now messed up here.
// Do stuff with viewDetail array
[viewDetail release];
}