Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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
Ios 如何解析嵌套的JSON对象?_Ios_Objective C_Arrays_Json - Fatal编程技术网

Ios 如何解析嵌套的JSON对象?

Ios 如何解析嵌套的JSON对象?,ios,objective-c,arrays,json,Ios,Objective C,Arrays,Json,我得到的JSON格式如下: NSArray *fileData = [myDic1 valueForKeyPath:@"posts.CHANNEL"]; for (int i=0; i < [clientFileData count]; i++) { NSDictionary *myDictionary = [fileData objectAtIndex:i]; ] stream({posts:[{CHANNEL:{ios:(format=m3u8 aapl.m3u8“}}]}) 我想

我得到的JSON格式如下:

NSArray *fileData = [myDic1 valueForKeyPath:@"posts.CHANNEL"];
for (int i=0; i < [clientFileData count]; i++) {
NSDictionary *myDictionary = [fileData objectAtIndex:i];
]
stream({posts:[{CHANNEL:{ios:(format=m3u8 aapl.m3u8“}}]})

我想得到的是“ios”的数组。 这是我的代码:

id jsonObjects = [NSJSONSerialization JSONObjectWithData:
                  jsonSource options:NSJSONReadingMutableContainers error:nil];
for (NSDictionary *dataDict in jsonObjects) {
    NSArray *ios_data = [[[dataDict objectForKey:@"posts"] objectForKey:@"CHANNEL"] objectForKey:@"ios"];
    NSLog(@"%@",ios_data);
    dict = [NSDictionary dictionaryWithObjectsAndKeys:ios_data, ios,nil];

}
但是它返回空值,有什么问题吗

你的“JSON”:

不是JSON。您可以尝试通过验证器运行它,比如测试它

此外,您应该创建一个要传入的NSError引用,而不是
nil
,以便NSJSONSerialization可以向您提供一个错误对象。这将有助于调试


下面是一个示例,说明如果数据是有效的JSON,它会是什么样子:

{
    "stream": [
        {
            "posts": [
                {
                    "CHANNEL": {
                        "ios": "(format=m3u8-aapl).m3u8"
                    }
                }
            ]
        }
    ]
}
(为了更清晰,我将其隔开,但解析时不需要使用空格。)

您的“JSON”:

不是JSON。您可以尝试通过验证器运行它,比如测试它

此外,您应该创建一个要传入的NSError引用,而不是
nil
,以便NSJSONSerialization可以向您提供一个错误对象。这将有助于调试


下面是一个示例,说明如果数据是有效的JSON,它会是什么样子:

{
    "stream": [
        {
            "posts": [
                {
                    "CHANNEL": {
                        "ios": "(format=m3u8-aapl).m3u8"
                    }
                }
            ]
        }
    ]
}
(为了更清晰,我将其隔开,但解析时不需要使用空格。)

您的“JSON”:

不是JSON。您可以尝试通过验证器运行它,比如测试它

此外,您应该创建一个要传入的NSError引用,而不是
nil
,以便NSJSONSerialization可以向您提供一个错误对象。这将有助于调试


下面是一个示例,说明如果数据是有效的JSON,它会是什么样子:

{
    "stream": [
        {
            "posts": [
                {
                    "CHANNEL": {
                        "ios": "(format=m3u8-aapl).m3u8"
                    }
                }
            ]
        }
    ]
}
(为了更清晰,我将其隔开,但解析时不需要使用空格。)

您的“JSON”:

不是JSON。您可以尝试通过验证器运行它,比如测试它

此外,您应该创建一个要传入的NSError引用,而不是
nil
,以便NSJSONSerialization可以向您提供一个错误对象。这将有助于调试


下面是一个示例,说明如果数据是有效的JSON,它会是什么样子:

{
    "stream": [
        {
            "posts": [
                {
                    "CHANNEL": {
                        "ios": "(format=m3u8-aapl).m3u8"
                    }
                }
            ]
        }
    ]
}

(我将其隔开以便更清晰,但在解析时不需要使用间距。)

一旦您的数组中有“posts”,您就可以像这样向下钻取:

NSArray *fileData = [myDic1 valueForKeyPath:@"posts.CHANNEL"];
for (int i=0; i < [clientFileData count]; i++) {
NSDictionary *myDictionary = [fileData objectAtIndex:i];
]
然后像这样访问:

NSArray *fileData = [myDic1 valueForKeyPath:@"posts.CHANNEL"];
for (int i=0; i < [clientFileData count]; i++) {
NSDictionary *myDictionary = [fileData objectAtIndex:i];
]
for(int i=0;i<[clientFileData count];i++){
NSDictionary*myDictionary=[fileData objectAtIndex:i];
]

另外,除非我错了,否则您的JSON文件似乎格式不正确。

一旦您的数组持有“posts”,您可以按如下方式向下钻取:

NSArray *fileData = [myDic1 valueForKeyPath:@"posts.CHANNEL"];
for (int i=0; i < [clientFileData count]; i++) {
NSDictionary *myDictionary = [fileData objectAtIndex:i];
]
然后像这样访问:

NSArray *fileData = [myDic1 valueForKeyPath:@"posts.CHANNEL"];
for (int i=0; i < [clientFileData count]; i++) {
NSDictionary *myDictionary = [fileData objectAtIndex:i];
]
for(int i=0;i<[clientFileData count];i++){
NSDictionary*myDictionary=[fileData objectAtIndex:i];
]

另外,除非我错了,否则您的JSON文件似乎格式不正确。

一旦您的数组持有“posts”,您可以按如下方式向下钻取:

NSArray *fileData = [myDic1 valueForKeyPath:@"posts.CHANNEL"];
for (int i=0; i < [clientFileData count]; i++) {
NSDictionary *myDictionary = [fileData objectAtIndex:i];
]
然后像这样访问:

NSArray *fileData = [myDic1 valueForKeyPath:@"posts.CHANNEL"];
for (int i=0; i < [clientFileData count]; i++) {
NSDictionary *myDictionary = [fileData objectAtIndex:i];
]
for(int i=0;i<[clientFileData count];i++){
NSDictionary*myDictionary=[fileData objectAtIndex:i];
]

另外,除非我错了,否则您的JSON文件似乎格式不正确。

一旦您的数组持有“posts”,您可以按如下方式向下钻取:

NSArray *fileData = [myDic1 valueForKeyPath:@"posts.CHANNEL"];
for (int i=0; i < [clientFileData count]; i++) {
NSDictionary *myDictionary = [fileData objectAtIndex:i];
]
然后像这样访问:

NSArray *fileData = [myDic1 valueForKeyPath:@"posts.CHANNEL"];
for (int i=0; i < [clientFileData count]; i++) {
NSDictionary *myDictionary = [fileData objectAtIndex:i];
]
for(int i=0;i<[clientFileData count];i++){
NSDictionary*myDictionary=[fileData objectAtIndex:i];
]

另外,除非我错了,否则您的JSON文件似乎格式不正确。

得到如下响应:

NSDictionary *dictionaryData = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
正确的JSOn应该是这样的

{
   "posts":[
      {
         "CHANNEL":{
            "ios":"(format=m3u8-aapl).m3u8"
         }
      }
   ]
}

获取正确的JSON格式,然后尝试对其进行解析。您所做的一件错事是POST是一个数组。

获取您的响应,如:

NSDictionary *dictionaryData = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
正确的JSOn应该是这样的

{
   "posts":[
      {
         "CHANNEL":{
            "ios":"(format=m3u8-aapl).m3u8"
         }
      }
   ]
}

获取正确的JSON格式,然后尝试对其进行解析。您所做的一件错事是POST是一个数组。

获取您的响应,如:

NSDictionary *dictionaryData = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
正确的JSOn应该是这样的

{
   "posts":[
      {
         "CHANNEL":{
            "ios":"(format=m3u8-aapl).m3u8"
         }
      }
   ]
}

获取正确的JSON格式,然后尝试对其进行解析。您所做的一件错事是POST是一个数组。

获取您的响应,如:

NSDictionary *dictionaryData = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
正确的JSOn应该是这样的

{
   "posts":[
      {
         "CHANNEL":{
            "ios":"(format=m3u8-aapl).m3u8"
         }
      }
   ]
}


获取正确的JSON格式,然后尝试解析它。你做错的一件事是POST是一个数组。

上述内容不是合法的JSON,也不是iOS中解析的JSON的表示形式。JSONObjectWithData有一个
错误:
参数。请使用它!!!(有关json语法的描述,请参见json.org。主要是上面缺少关键字名称周围的引号。)上面的内容不是合法的json,也不是iOS中解析json的表示形式。JSONObjectWithData有一个
错误:
参数。请使用它!!!(有关json语法的描述,请参见json.org。主要是上面缺少关键字名称周围的引号。)上面的内容不是合法的json,也不是iOS中解析json的表示形式。JSONObjectWithData有一个
错误:
参数。请使用它!!!(有关json语法的描述,请参见json.org。主要是上面缺少关键字名称周围的引号。)上面的内容不是合法的json,也不是iOS中解析json的表示形式。JSONObjectWithData有一个
错误:
参数。请使用它!!!(有关json语法的描述,请参见json.org。主要是上面的关键字名称缺少引号。)谢谢,这是关于我的回调json。谢谢,这是关于我的回调json。谢谢,这是关于我的回调json。谢谢,这是关于我的回调json。非常感谢Rashad,我想我会请求第三方修复格式或请求其他方式解析数据。非常感谢Rashad,我想我会请求一些第三方修复了格式或请求以其他方式解析数据。非常感谢Rashad,我想我会请求一些第三方修复格式或请求以其他方式解析数据。非常感谢Rashad,我想我会请求一些第三方修复格式或请求以其他方式解析数据解析它的数据。