我需要帮助使用Objective C创建一个JSON数组。我以前从未这样做过,但我想要做的是创建一个JSON数组,然后创建一个JSON对,用于在我的NSURLConnection Post体中发回。
I know how to make and send the post body.
NSData *data = // some stuff in here...
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [data length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:data];
我的问题是我如何首先创建JSON数组,然后如何创建JSON对 任何帮助将不胜感激:))
答案 0 :(得分:2)
使用Apple的NSJSONSerialization
NSArray *array = @[@"1",@"2",@"3"];
NSData *json = [NSJSONSerialization dataWithJSONObject:array options:0 error:nil];
//back
array = [NSJSONSerialization JSONObjectWithData:json options:0 error:nil];
答案 1 :(得分:0)
JSON基本上是转换为NSData的NSDictionary。我建议只使用AFNetworking框架,它将NSDictionary作为参数并自动将其转换为JSON。
但如果您想自己进行转换,可以使用苹果NSJSONSerialization:
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:requestParam
options:NSJSONWritingPrettyPrinted
error:&error];
如果你想发送一个数组,你可以这样做:
NSArray *requestArray = @[@"1",@"2"];
NSDictionary *requestDictionary = @{@"Array": requestArray};
这将创建以下结构:
Array = (
1,
2
);
如果您想稍后修改requestDictionary(例如:添加额外的键和对象),您只需将其变为可变并使用它与使用NSMutableDictionaries一样。