Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
如何将此数组转换为json(;iOS&xFF09;_Ios_Objective C_Json_Nsarray_Nsdictionary - Fatal编程技术网

如何将此数组转换为json(;iOS&xFF09;

如何将此数组转换为json(;iOS&xFF09;,ios,objective-c,json,nsarray,nsdictionary,Ios,Objective C,Json,Nsarray,Nsdictionary,这是一个数组: 2011-1-1 2011-1-2 2011-3-3 2012-1-4 2012-1-5 2012-6-7 2012-6-9 2013-1-3 2013-1-8 2013-9-1 2013-9-2 2014-3-7 2014-3-13 2014-4-1 2014-4-17 我需要使用嵌套的NSArray将此NSDictionary转换为json,如下所示(使用objective-c): { "y2011m1": [ "2011-1-1

这是一个数组:

2011-1-1
2011-1-2
2011-3-3
2012-1-4
2012-1-5
2012-6-7
2012-6-9
2013-1-3
2013-1-8
2013-9-1
2013-9-2
2014-3-7
2014-3-13
2014-4-1
2014-4-17
我需要使用嵌套的
NSArray
将此
NSDictionary
转换为json,如下所示(使用objective-c):

  {
        "y2011m1": [
            "2011-1-1",
            "2011-1-2"
        ],
        "y2011m3": [
            "2011-3-3"
        ],
        "y2012m1": [
            "2012-1-4",
            "2012-1-5"
        ],
        "y2012m6": [
            "2012-6-7",
            "2012-6-9"
        ],
        "y2013m1": [
            "2013-1-3",
            "2013-1-8"
        ],
        "y2013m9": [
            "2013-9-1",
            "2013-6-2"
        ],
        "y2014m3": [
            "2014-3-7",
            "2014-3-13"
        ],
        "y2014m4": [
            "2014-4-1",
            "2014-4-17"
        ]
    }

同年同月变成“YxxMX”,按它分组,我不知道怎么办(使用objective-c),请帮助我,谢谢。

我想你应该先将数组转换成NSDictionary,然后使用NSJSONSerialization方法

[NSJSONSerialization dataWithJSONObject: options: error:]
[NSJSONSerialization JSONObjectWithData: options: error:]

NSDictionary * toJson = @{@"y2001m1" : @[@"2011-1-1", @"2011-1-2"]};
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:toJson options:0 error:&error];

它会产生你想要的东西

将输入数组转换为字典格式的代码:

NSArray *datesArr = @[@"2011-1-1", @"2011-1-2", @"2011-3-3", @"2012-1-4", @"2012-1-5", @"2012-6-7", @"2012-6-9", @"2013-1-3", @"2013-1-8", @"2013-9-1", @"2013-9-2", @"2014-3-7", @"2014-3-13", @"2014-4-1", @"2014-4-17"];
for (NSString *date in datesArr) {
    NSArray *subStrArr = [date componentsSeparatedByString:@"-"];
    NSString *ymStr = [NSString stringWithFormat:@"y%@m%@", [subStrArr objectAtIndex:0], [subStrArr objectAtIndex:1]];
    if ([jsonDict objectForKey:ymStr]) {
        NSMutableArray *ymStrJsonArray = [jsonDict objectForKey:ymStr];
        [ymStrJsonArray addObject:date];
        [jsonDict setObject:ymStrJsonArray forKey:ymStr];
    }
    else {
        NSMutableArray *ymStrJsonArray = [[NSMutableArray alloc] initWithArray:@[date]];
        [jsonDict setObject:ymStrJsonArray forKey:ymStr];
    }
}
NSLog(@"dict  = %@", jsonDict);
然后将jsonDict(NSDictionary)转换为json。 我希望这段代码能帮助你

NSError*error; NSData*jsonData2=[NSJSONSerialization dataWithJSONObject://pass 此处的数组选项:nsjsonwritingprettyptederror:&error];
NSString*jsonString=[[NSString alloc]initWithData:jsonData2编码:NSUTF8StringEncoding]

他真的刚加入社区。如果你要投票否决他/她,请让他们知道为什么,这样他们才能更好地做出贡献。