IOS / Objective-C:将自定义对象数组发送到jsonData的Web服务JsonSerialization

时间:2018-07-07 20:19:07

标签: ios objective-c json nsjsonserialization

我正在尝试使用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对象的方法吗?

预先感谢您的任何建议。

0 个答案:

没有答案