简体   繁体   English

无法从iOS中的NSArray转换为正确格式的NSString

[英]Unable to convert to a proper format of NSString from NSArray in iOS

I want to send below JSON parameter in an API call, but the string of contacts array which is used below is confusing and I'm unable to form it in iOS. 我想在API调用中发送JSON参数以下的内容,但是下面使用的contacts数组字符串令人困惑,并且无法在iOS中形成它。 Below is the working JSON parameter tested in Rest client. 以下是在Rest客户端中测试的工作JSON参数。 How to form a similar pattern of string containing an array of contacts in iOS? 如何在iOS中形成包含联系人数组的相似字符串模式?

Working JSON Parameter, 工作的JSON参数,

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

My code below for conversion, 我下面的代码进行转换,

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

Framed error JSON parameter, 框架错误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"
}

and error I'm getting in console is, 我进入控制台的错误是,

value __NSCFConstantString * @"JSON text did not start with array or object and option to allow fragments not set." 值__NSCFConstantString * @“ JSON文本未以数组或对象开头,并且选项未设置片段。” 0x000000010cf2ed50 0x000000010cf2ed50

Here is a way in which you can convert your ios array to JSON string 这是将ios数组转换为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"];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM