//1. 初始化可變字符串,存放最終生成json字串 NSMutableString *jsonString = [[NSMutableString alloc] initWithString:@"{\"actorhalls\":["]; for(ExecplanActosHall *hall in actorhalls){ //2. 遍歷數組,取出鍵值對並按json格式存放 NSString *string; string = [NSString stringWithFormat: @"{\"ownerName\":\"%@\",\"ownerId\":\"%@\",\"channelId\":\"%@\",\"ownerType\":\"%ld\"},",hall.ownerName,hall.ownerId,hall.channelId,(long)hall.ownerType]; [jsonString appendString:string]; } // 3. 獲取末尾逗號所在位置 NSUInteger location = [jsonString length]-1; NSRange range = NSMakeRange(location, 1); // 4. 將末尾逗號換成結束的]} [jsonString replaceCharactersInRange:range withString:@"]}"]; NSLog(@"jsonString = %@",jsonString);
其一:字典轉json
//字典轉Json - (NSString*)dictionaryToJson:(NSDictionary *)dic { NSError *parseError = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError]; return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; }
其二:json轉字典
/*! * @brief 把格式化的JSON格式的字符串轉換成字典 * @param jsonString JSON格式的字符串 * @return 返回字典 */ + (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString { if (jsonString == nil) { return nil; } NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; NSError *err; NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err]; if(err) { NSLog(@"json解析失敗:%@",err); return nil; } return dic; }