2016-08-11 3 views
0

Я хочу отправить ниже параметр JSON в вызове API, но строка массива контактов, которая используется ниже, запутанна, и я не могу ее создать в iOS , Ниже приведен рабочий параметр JSON, протестированный в клиенте Rest. Как сформировать аналогичный шаблон строки, содержащий массив контактов в iOS?Невозможно преобразовать в нужный формат NSString из NSArray в iOS

Рабочий JSON параметр,

{ 
    "contacts": "[\"5555228243\",\"919677012480\"]", 
    "phno": "919791871448", 
    "device": "iphone", 
    "key": "key", 
    "name": "Logunath Subramaniyan", 
    "files": "files" 
} 

Мой код ниже для преобразования

NSMutableDictionary *reqData = [[NSMutableDictionary alloc]init]; 
[reqData setObject:[FMCoredDataUtility fetchDetailForKey:kmobileNumber] forKey:@"phno"]; 
[reqData setObject:[FMCoredDataUtility fetchUserNameForKey:kuserName ]forKey:@"name"]; 
[reqData setObject:@"iphone" forKey:@"device"]; 
[reqData setObject:@"key" forKey:@"key"]; 
[reqData setObject:[self getMobileContacts ] forKey:@"contacts"]; 
[reqData setObject:@"files" forKey:@"files"]; 

-(NSArray*)getMobileContacts{ 
    contactNumbers = [addUtility getContactNumbers];      
    for (int i = 0; i < [contactNumbers count]; i++) { 
     [filteredContacts addObject:[[[contactNumbers objectAtIndex:i] componentsSeparatedByCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]] componentsJoinedByString:@""]]; 
    } 
    return filteredContacts; 
} 

Рамку ошибка параметра JSON,

{ 
    "contacts": [ 
    "5555228243", 
    "5554787672", 
    "4085555270", 
    "4085553514", 
    "5556106679", 
    "5557664823", 
    "7075551854", 
    "8885555512", 
    "8885551212", 
    "5555648583", 
    "4155553695", 
    "919677012480" 
    ], 
    "phno": "919791871448", 
    "device": "iphone", 
    "key": "key", 
    "name": "Logunath Subramaniyan", 
    "files": "files" 
} 

и ошибок я получаю в консоли,

значение __NSCFConstantString * @ "Текст JSON не начинался с массива или объекта и не позволял фрагментам не задаваться". 0x000000010cf2ed50

+0

Поскольку вы создаете массив в то время как ваш рабочий ключ JSON контакты имеет строку. Существует несоответствие между двумя ключами. – Harsh

+0

Да точно, как преобразовать массив в рабочий шаблон JSON? – Logunath

+0

Я ответил на ваши сомнения. Проверьте, работает ли это для вас. – Harsh

ответ

1

Вот способ, в котором вы можете преобразовать массив ИСН JSON строку

NSArray *contactsArray = [self getMobileContacts ];//This will be your contacts array 
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:myArray options:NSJSONWritingPrettyPrinted error:&error]; 
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
[reqData setObject:jsonString forKey:@"contacts"]; 
+0

Спасибо. Это сработало. – Logunath

+0

Приветствия человека. Наслаждаться. :) – Harsh

Смежные вопросы