Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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格式解析NSArray中的值_Ios_Json_Parsing_Nsmutablearray - Fatal编程技术网

Ios 基于JSON格式解析NSArray中的值

Ios 基于JSON格式解析NSArray中的值,ios,json,parsing,nsmutablearray,Ios,Json,Parsing,Nsmutablearray,我有一个基于JSON格式的NSArray。我从网络上请求它并将其保存在数组中。我试图使用字典获取“categoryname”和“subcore”的值,并将它们存储在新数组中,但它们仍然是空的。我是否必须使用JSON序列化将数组转换回NSData,或者是否有更直接的方法来实现这一点 NSArray详细评分: { "articles": [ { "abstract": "text", "title": "title"

我有一个基于JSON格式的NSArray。我从网络上请求它并将其保存在数组中。我试图使用字典获取“categoryname”和“subcore”的值,并将它们存储在新数组中,但它们仍然是空的。我是否必须使用JSON序列化将数组转换回NSData,或者是否有更直接的方法来实现这一点

NSArray详细评分:

    {
      "articles": [
        {
          "abstract": "text",  
          "title": "title"
        }
      ], 
      "subscore": 3, 
      "categoryname": "Reporting"
    }, 
    {
      "articles": [
        {
          "abstract": "text2",  
          "title": "title"
        }
      ], 
      "subscore": 1, 
      "categoryname": "Power"
    }]
}
代码:

for(int i=0;i<[self.detailedscore count];i++)
{
NSMutableDictionary*dc=[self.detailedscore对象索引:i];
NSString*分数=[dc objectForKey:@“子核心”];
NSString*categoryname=[dc objectForKey:@“categoryname]”;
[self.allscores addObject:subcore];
[self.allcategories addObject:categoryname];
for(所有类别中的NSString*yourVar){
NSLog(@“您的数组元素是=%@”,yourVar);
}

如果您有阵列,请使用下面的代码 对于(int i=0;i<[self.detailedscore count];i++) {

{}-->表示dictionary,[]-->array…..这是我将webservices返回值分配为NSArray或NSDictionary….时遵循的规则。。。。 根据您当前的JSON格式,这可能会给您一个想法

NSMutableArray *categoryArray = [NSMutableArray new];
for (NSDictionary *childDict in self.detailedscore)
{
    [categoryArray addObject:[childDict objectForkey:@"categoryname"]];
}
希望这有帮助

[NSURLConnection sendAsynchronousRequest:req队列:[NSOperationQueue mainQueue]完成处理程序:^(NSURResponse*响应,NSData*数据,NSError*connectionError){ 如果(!connectionError){ NSDictionary*dict=[NSJSONSerialization JSONObjectWithData:数据选项:NSJSONReadingAllowFragments错误:&connectionError]; NSLog(@“Dict%”,Dict); BOOL isValid=[NSJSONSerialization isValidJSONObject:dict]; 如果(有效){ [目标getJSONFromresponseDictionary:dict for Connection:strTag error:connectionError]; } 否则{ NSString*strResponse=[[NSString alloc]initWithData:数据编码:NSUTF8StringEncoding]; [目标getStringFromresponseDictionary:strResponse for Connection:strTag error:error];
}

问题不在数组、字典或web请求中。我没有分配NSMutableArray,因此它们一直是空的。代码可以很好地从数组中提取值,以备任何人使用。

detailedscore是一个字典,而不是数组。我从web获取它,并将其作为可转换属性存储在中核心数据,然后我将其作为NSArray获取。我的问题是如何从这一点上处理它我会参考这个问题,在你的问题中发布一段有效的JSON怎么样?“我如何解析JSON?”这里几乎每天都有人问问题……所以没有太多的容忍度。@Borrden我搜索过类似的问题。除了一些外部库之外,我没有找到任何东西。我也没有看到任何人在这里回答。很抱歉,我把数组的内容放错了。我修复了它。我不需要获得详细的分数。我已经有了它的存储数组中的d。我需要获取它的所有子核和类别,而不必返回web服务请求。这与我所做的不同吗?你使用的是分数作为键而不是子核。在数组中,你必须对包含字符串的变量进行分数。这只是一个输入错误。我正在打印类别名称。没有解释?没有格式复制粘贴的无关内容?
    NSMutableDictionary * dc = [self.detailedscore objectAtIndex:i];

    NSString * score = [dc objectForKey:@"subscore"];
    NSString * categoryname = [dc objectForKey:@"categoryname"];

    [self.allscores score];
    [self.allcategories addObject:categoryname];

    for (NSString *yourVar in allcategories) {

        NSLog (@"Your Array elements are = %@", yourVar);


    }
NSMutableArray *categoryArray = [NSMutableArray new];
for (NSDictionary *childDict in self.detailedscore)
{
    [categoryArray addObject:[childDict objectForkey:@"categoryname"]];
}