2016-12-05 2 views
-1

Я создаю JSON для отправки в службе по проверке онлайн своей ошибки, показывающей:создания JSON в Objective C, недействительны JSON

Error: Parse error on line 1: [{\ "SAHExpertCode\" --^ Expecting 'STRING', '}', got 'undefined' My JSON is [{\"SAHExpertCode\" : \"\", \"ShiftType\" : \"AM\", \"LocFunId\" : \"CLT0004218\", \"SAHQualCode\" : \"CA\" }] Please tell me what's wrong and how to correct it.First i am making JSON filterString = [{ "SAHExpertCode" : "", "ShiftType" : "AM", "LocFunId" : "CLT0004218","SAHQualCode" : "CA" }] on checking found it is correct then creating a dictionary NSDictionary*[email protected]{@"MbrId":[USER_DEFAULTS valueForKey:@"MemberId"],@"StrFilter":[NSString stringWithFormat:@"%@",filterString],@"shiftCrtlNos":shftCntrlNmbrs}; NSMutableArray *finalArray = [[NSMutableArray alloc]init]; [finalArray addObject:dictData]; NSString *finalString =[self ConvertArrayToJsonData:finalArray];finalString = [finalString stringByReplacingOccurrencesOfString:@"\n" withString:@""]; finalString = [finalString stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];after creation of final string it is generating symbol \ for JSON Conversion my code is -(NSString *)ConvertArrayToJsonData:(NSMutableArray *)array{ NSError error; NSData jsonData = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrinted error:&error]; NSString *JSONString; if (!jsonData) { NSLog(@"error :%@",error); } else {JSONString = [[NSString alloc] initWithBytes:[jsonData bytes] length:[jsonData length] encoding:NSUTF8StringEncoding]; // NSLog(@"jsonstring:%@",JSONString); } return JSONString; } //i need JSON like [ { "StrFilter" : "[ { \"SAHExpertCode\" : \"\", \"ShiftType\" : \"PM\", \"LocFunId\" : \"CLT0004218\", \"SAHQualCode\" : \"CA\" }]", "MbrId" : "MBR0000035", "shiftCrtlNos" : "0080013526,0080014697" }] also tell me how to remove \ from String

+1

вы можете разместить код, как вы генерирующий запрос & JSON также, чтобы мы могли помочь вам? – CodeChanger

+0

Скажите, как именно вы хотите сделать JSON (Json Format). Дайте один образец. –

+0

вопрос текст перепутался извините за это – niket

ответ

0

я заменил ненужные \ символов, делая finalString = [finalString stringByReplacingOccurrencesOfString: @ "\" withString: @ ""]; в строке JSON.

+0

Это создаст полный мусор, если на самом деле нужны обратные косые черты. – gnasher729

0

Предлагаю вам перейти на сайт www.json.org и посмотреть правильное форматирование данных JSON. И самый простой способ правильно отформатировать JSON - создать массив или словарь, который вы хотите преобразовать в JSON, и использовать NSJSONSerialization для выполнения задания.

0

Просто использовать стандартный метод NSJSONSerialization ИО

в примере ниже я есть «postMenuArray», который я преобразовывая в формат JSON.

NSData * postMenuSerial = [NSJSONSerialization dataWithJSONObject:postMenuArray options:0 error:nil]; 

NSString *Menujson = [[NSString alloc] initWithBytes:[postMenuSerial bytes] length:[postMenuSerial length] encoding:NSUTF8StringEncoding]; 

Здесь я получил JSON ответ

Menujson = [Menujson stringByReplacingOccurrencesOfString:@" "withString:@""]; 

Наконец я удалить все пробелы.

Еще перед проблемой попробовать это

Menujson = [Menujson stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];