Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从NSMutableDictionary在ios中创建json?_Ios_Objective C_Json - Fatal编程技术网

如何从NSMutableDictionary在ios中创建json?

如何从NSMutableDictionary在ios中创建json?,ios,objective-c,json,Ios,Objective C,Json,我想创建一个类似这样的JSON [{“电话”:“3456345”},{“电话”:“2423242”},{“电话”:“2423423”}] 我有一个数组,其中我只有电话号码。下面的代码将创建JSON,但为此我需要先创建字典 contactData =[NSJSONSerialization dataWithJSONObject:contacts options:NSJSONWritingPrettyPrinted error:&error]; 我曾尝试创建类似这样的字典,但它只输入最后一

我想创建一个类似这样的JSON

[
{“电话”:“3456345”},{“电话”:“2423242”},{“电话”:“2423423”}]

我有一个数组,其中我只有电话号码。下面的代码将创建JSON,但为此我需要先创建字典

contactData =[NSJSONSerialization dataWithJSONObject:contacts options:NSJSONWritingPrettyPrinted error:&error];
我曾尝试创建类似这样的字典,但它只输入最后一个值,因为一个键不能有重复的值。请告诉我如何解决这个问题

    int i=0;
    for (i=0; i<[all_contacts count]; i++)
    {
        [contacts setObject:[all_contacts objectAtIndex:i]   forKey:@"phone"];

    }
inti=0;

对于(i=0;i假设
所有触点
如下所示:

[ "3456345", "2423242", "2423423" ]
那么这应该是可行的:

NSMutableArray *root = [NSMutableArray new];
for (NSString *number in all_contacts) {
    [root addObject:@{ "phone": number }];
}

contactData =[NSJSONSerialization dataWithJSONObject:root
                                             options:NSJSONWritingPrettyPrinted
                                               error:&error];
inti=0;
NSMutableArray*联系人=[[NSMutableArray alloc]init];

for(i=0;iI)可以建议您在该词典中使用“for in”。如果您可以显示最终词典的外观,您希望创建一个包含三个“对象”的数组,其中一个JSON“对象”对应一个iOS词典。为什么您认为仅使用一个词典就可以做到这一点?但当我将其转换为词典时,它会添加一些“/”你能告诉我为什么吗?是的,这里是{key=“[{\'phone\':5555648583},{\'phone\':5554787672},{\'phone\':952365285},{\'phone\':555555228243},{\'phone\':5557664823},{\'phone\':5556106679};}@inder请记录它,它会正确显示,
是一个特殊字符,因此要将其包含在字符串中,我们必须对其进行转义。我将它记录下来。作为一个字符串,它很好,但在转换时会添加此特殊字符。”。
int i=0;
NSMutableArray *contacts = [[NSMutableArray alloc] init];
for (i=0; i<[all_contacts count]; i++) {
  [contacts addObject:@{@"phone" : [all_contacts objectAtIndex:i]}];
}

NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:contacts options:0 error:&error];
if (!jsonData) {
  //error here
} else {
  NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}