Так что это может быть, а может и не быть вопросом, который вы задаете, но ваша строка JSON сформирована неправильно. Массив «задачи» в формате JSON будет выглядеть так:
NSString *post = @"{"task":[{"id":"123","list":"456","done":1,"done_date":1305016383}]}";
Я просто боролся с аналогичной ситуацией при отправке на сервер PHP, и я не мог найти никаких вопросов по этому поводу в Интернете, но это то, что мне пришлось бы делать, если бы я публиковал те же данные:
NSString *post = @"task[0][id]=123&task[0][list]=456&task[0][done]=1&task[0][done_date]=1305016383&";
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:30];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:[post dataUsingEncoding:NSUTF8StringEncoding]];
...
Удачи!