我正在尝试使用JSON将自定义对象数组发送到服务器。
我尝试了两种方法。我将对象数组字符串化并发送。
NSArray <Offers *> *offers = [self getOffers];
NSString *offersString = [offers componentsJoinedByString:@","];
这将它带到服务器,但是在服务器端,我最终得到了一个非常复杂的字符串,这使得使用PHP在服务器上重新转换为结构化数据成为一个挑战。另外,由于传输中的字符串可能会出现问题,因此这似乎是一种脆弱的方法。
第二种方法是在电话上将对象数组序列化为JSONData对象并发送它。问题是我还想发送其他数据,例如身份验证字符串/令牌,而且我不知道如何组装一方面包含身份验证字符串的JSONData对象和包含对象数组的JSONData另一方面。
实际上,当我尝试创建包含NSData对象的字典时,我的代码崩溃了。
NSArray <Offers *> *offers = [self getOffers];
NSError *error;
NSMutableArray<NSDictionary*> *jsonOffers = [NSMutableArray array];
for (Offers* offer in offers) {
[jsonOffers addObject:[offer toJSON]];
}
NSData * OffersJSONData = [NSJSONSerialization dataWithJSONObject:jsonOffers
options:kNilOptions
error:&error];
NSMutableDictionary *dict = [[NSMutableDictionary alloc]initWithCapacity:50];
[dict setObject:authtoken forKey:@"token"];
[dict setObject:OffersJSONData forKey: @"offersobject"];
//FOLLOWING LINE CRASHES
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithDictionary:dict];
NSData *data = [NSJSONSerialization dataWithJSONObject:jsonDictionary
options:0 error:&error];
[self postToServer:data];
有人可以建议一种创建同时包含字符串和NSData结构的JSON对象的方法吗?
预先感谢您的任何建议。