Формат JSON и цель-c
Моему приложению необходимо отправить полезную нагрузку JSON на сервер, а сервер хочет получить следующий формат:
{
"recipient_emails" :["test@xyz.net", "user@xyz.com"]
}
Все, что я могу создать, это следующий формат:
{
"recipient_emails" = ("test@xyz.net", "user@xyz.com");
}
То, что я отправляю, не работает, и я не могу сказать, является ли это проблемой сервера с нашим почтовым сервером stmp или форматом JSON, который я отправляю.
Вот как я создаю JSON:
//Grab the data (from NSManagedObject)
NSString *emailData = [[NSString alloc] initWithData:self.submissionRecipients encoding:NSUTF8StringEncoding];
//Extract all the separate email address
NSArray *emails = [emailData componentsSeparatedByString:@","];
//If there are some there (which should always be)
if (emails) {
NSError *error;
//Add the array to an NSDictionary with key and convert to JSON
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:[NSDictionary dictionaryWithObject:emails forKey:@"recipient_emails"] options:0 error:&error];
//Add json to HTTPRequest
[theRequest setHTTPBody:jsonData];
//Print out for debug purposes
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:nil];
NSLog(@"%@", dic);
}
1 ответ
Решение
Описание NSArray
использует круглые скобки - не волнуйтесь, если вы используете NSJSONSerialization
сгенерированный JSON будет правильно содержать квадратные скобки.