Подтвердить что ты не робот

Получать значения конкретного ключа в nsdictionary

Я сохранил результат синтаксического анализа json в dictionary, который выглядит так:

{
 "statusCode":"200",
"body":[
  {
     "status":"success",
     "remarks":null
  }
],

"data":[
     "abcd":[
        {
           "category":"a",
           "title":"b",
           "id":"24"
        },
        {
           "category":"c",
           "title":"crd",
           "id":"65"
        },
        {
           "category":"ds",
           "title":"sd",
           "id":"18"
        }

     ]
  },
  {
     "efgh":[
        {
           "category":"ds",
           "title":"sd",
           "id":"18"
        },
        {
           "category":"sd",
           "title":"sd",
           "id":"1"
        }

                             ]
  },
  {
     "ijkl":[
        {
           "category":"ds",
           "title":"sd",
           "id":"18"
        },
        {
           "category":"sd",
           "title":"sd",
           "id":"1"
        }

     ]
  }
 ]
}

Данные для ключевых @ "данных" могут быть сохранены в массиве с помощью

NSMutableArray *getdata=[[NSMutableArray alloc]init];
getcat=[results objectForKey:@"data"];

Теперь что мне делать для values(category, title, id) внутри первого индекса i.e. "abcd".

Если у кого есть какие-либо знания, пожалуйста, посмотрите на это.

Спасибо всем.

4b9b3361

Ответ 1

После этого вы получите желаемый объект

NSDictionary *dict=[results valueForKeyPath:@"data.abcd"][0];

Для индивидуума:

NSString *categoryString=[[results valueForKeyPath:@"data.abcd"][0] objectForKey:@"Category"];
NSString *idString=[[results valueForKeyPath:@"data.abcd"][0] objectForKey:@"id"];
NSString *titleString=[[results valueForKeyPath:@"data.abcd"][0] objectForKey:@"title"];

Кроме того,

NSString *categoryString=dict[@"Category"];
NSString *idString=dict[@"id"];
NSString *titleString=dict[@"title"];

Ответ 2

Проверьте следующее:

NSString *value=[[[getcate valueForKey:@"abcd"] objectAtIndex:0] valueForKey:@"category"];

Ответ 3

Это массив, поэтому используйте objectAtIndex: (т.е. [getcat objectAtIndex:0] или getcat[0])