Ios 带有多个字段的JSON字符串

Ios 带有多个字段的JSON字符串,ios,objective-c,json,Ios,Objective C,Json,我目前正在使用以下命令从iOS应用程序向服务器发送一些简单的json: NSData *jsonData = [@"{ \"item\": \"hat\" }" dataUsingEncoding:NSUTF8StringEncoding]; 我想添加一些其他字段和值 包含更多字段的适当语法是什么 差不多 NSData *jsonData = [@"{ \"item\": \"hat\",\"id\":2,\"color\":\"blue\" }" dataUsingEncoding:NSU

我目前正在使用以下命令从iOS应用程序向服务器发送一些简单的json:

NSData *jsonData = [@"{ \"item\": \"hat\" }" dataUsingEncoding:NSUTF8StringEncoding];
我想添加一些其他字段和值

包含更多字段的适当语法是什么

差不多

 NSData *jsonData = [@"{ \"item\": \"hat\",\"id\":2,\"color\":\"blue\" }" dataUsingEncoding:NSUTF8StringEncoding];

或者有没有更好的方法发送字典?

创建字典:

NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setObject:'Value' forKey:'Key']; //adding values
你可以用

将NSDictionary转换为Json字符串,如下所示:

NSString *jsonString = [dictionary JSONStringWithOptions:JKSerializeOptionNone error:nil];
或者你可以使用

您可以在没有第三方框架的情况下完成:

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];
}

首先创建一个包含必需字段的
NSDictionary
,并将其序列化为JSON:

NSDictionary *package = @{@"item":@"hat",@"id":2,@"color":@"blue"};
NSData *data = [NSJSONSerialization dataWithJSONObject:package 
                                    options:0 error:&error];

为什么不用所需的值创建一个
NSDictionary
。然后将字典转换为JSON字符串发送到服务器?正如@rmaddy所说,创建一个NSDictionary并使用NSJSONSerialization类对其进行序列化(您将获得NSData)。JSON实际上只应被视为一种序列化方法,而不是一种数据结构。构建适当的数据结构,然后将其序列化以进行交付。
NSDictionary *package = @{@"item":@"hat",@"id":2,@"color":@"blue"};
NSData *data = [NSJSONSerialization dataWithJSONObject:package 
                                    options:0 error:&error];