将更复杂的结构序列化为JSON

时间:2014-07-09 12:34:07

标签: ios objective-c nsjsonserialization

我有NSArray个自定义对象(仅NSStringNSArrayNSNumber),我需要将此JSON发送到服务器。使用NSJSONSerialization会抛出错误,因为它不是属性列表。

除了以JSON格式手动创建NSString对象外,还有其他方法吗?

NSString *manualPost = [NSString stringWithFormat:@"{\"key1\": \"%@\",\"key2\": \"%@\",\"key3\": %@,\"keyArray4\": [%@]}", val1, val2, val3, valArray4];

1 个答案:

答案 0 :(得分:1)

要关闭此问题,正确的答案是使用字典,值可以是NSArraysNSNumber s,NSString s - 换句话说 - 属性列表。

样品:

NSDictionary *postDictionary = @{@"key1": @"value1",
                                 @"key2": @(1),
                                 @"key3":@[@"key3", @(5.9)]
                                 };


NSError *error;
NSData *postData = [NSJSONSerialization dataWithJSONObject:postDictionary options:NSJSONWritingPrettyPrinted error:&error];
NSLog(@"PostData %@", postData);
NSLog(@"Error: %@", error);