我目前正在使用以下内容从iOS应用程序向服务器发送一些简单的json:
NSData *jsonData = [@"{ \"item\": \"hat\" }" dataUsingEncoding:NSUTF8StringEncoding];
我想添加一堆其他字段和值。
包含更多字段的合适语法是什么?
像
这样的东西 NSData *jsonData = [@"{ \"item\": \"hat\",\"id\":2,\"color\":\"blue\" }" dataUsingEncoding:NSUTF8StringEncoding];
或者通过发送字典有更好的方法吗?
答案 0 :(得分:1)
创建词典:
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setObject:'Value' forKey:'Key']; //adding values
您可以使用JSONKit
将NSDictionary转换为Json字符串,如下所示:
NSString *jsonString = [dictionary JSONStringWithOptions:JKSerializeOptionNone error:nil];
或者您可以使用SBJson
NSString *jsonString = [dictionary JSONRepresentation];
你可以在没有第三方框架的情况下做到这一点:
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionaryOrArrayToOutput
options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string
error:&error];
if (! jsonData) {
NSLog(@"Got an error: %@", error);
} else {
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
答案 1 :(得分:0)
首先创建一个包含必填字段的NSDictionary
并将其序列化为JSON:
NSDictionary *package = @{@"item":@"hat",@"id":2,@"color":@"blue"};
NSData *data = [NSJSONSerialization dataWithJSONObject:package
options:0 error:&error];