如何将NSStrings的NSArray转换为Json String iOS

Din*_*hik 3 cocoa json objective-c nsarray ios

我有一个滚动数组

NSArray *rollArray = [NSArray arrayWithObjects:@"1", @"22", @"24", @"11", nil];
Run Code Online (Sandbox Code Playgroud)

我需要在Web服务请求中发送此数组

其格式如下(采用JSON格式)

JSON数据

{
  "existingRoll":["22","34","45","56"], // Array of roll numbers
  "deletedRoll":["20","34","44","56"] // Array of roll numbers
}
Run Code Online (Sandbox Code Playgroud)

但我在将数字滚动数字(rollArray)转换为所需格式的json String时遇到问题.

我正在尝试这个

 NSMutableDictionary *postDict = [[NSMutableDictionary alloc]init];
  [postDict setValue:[rollArray componentsJoinedByString:@","] forKey:@"existingRoll"];

 NSString *str = [Self convertToJSONString:postDict]; // converts to json string

 NSData *jsonData = [NSJSONSerialization dataWithJSONObject:str options:0 error:nil];

 [request setHTTPBody:jsonData];
Run Code Online (Sandbox Code Playgroud)

我使用的是iOS 7

Mid*_* MP 10

无需使用以下代码段:

  1. [rollArray componentsJoinedByString:@","]
  2. NSString *str = [Self convertToJSONString:postDict];

您可以使用以下代码创建JSON:

NSArray *rollArray = [NSArray arrayWithObjects:@"1", @"22", @"24", @"11", nil];
NSMutableDictionary *postDict = [[NSMutableDictionary alloc]init];
[postDict setValue:rollArray forKey:@"existingRoll"];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:postDict options:0 error:nil];

// Checking the format
NSLog(@"%@",[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]);
Run Code Online (Sandbox Code Playgroud)