Как извлечь значение ключа из массива json и передать его в переменную для назначения метке? - PullRequest
0 голосов
/ 16 декабря 2011

У меня есть массив, заполненный JSON.

rows4 = [dict objectForKey:@"users"];

У меня есть следующая строка, которая анализирует значение ключа из него.

NSString *hotelname = (NSString *) [rows4 valueForKey:@"H_NAME"];

Затем я присваиваю значение метке в представлении со следующей строкой:

LabelName.Text= hotelname;

До этого все выглядит хорошо. Я пишу журнал с Nslog следующим образом:

NSLog(@"HotelName : %@",hotelname);

Это появляется в журнале:

[11437: f803] HotelName: ( "Бла Бла Отель" )

И тогда симулятор падает со следующей ошибкой в ​​журнале:

NSArrayI isEqualToString:]: нераспознанный селектор, отправленный экземпляру

Из этого я понимаю, что переменная, которую я назначаю метке, на самом деле не переменная, а массив. Я прав? Если так, как я могу извлечь одно значение из моей переменной с помощью ключа и присвоить его переменной, которую затем можно назначить метке?

Я использую TouchJSON, кстати.

Ответы [ 2 ]

1 голос
/ 16 декабря 2011

Один из вариантов будет:

if(hotelname.count > 0)    
    LabelName.Text= [hotelname objectAtIndex:0];
0 голосов
/ 16 декабря 2011

Проверьте этот вопрос .JSON это не массив, это словарь.

- (void)viewDidLoad {
        //below is a function from [this tutorial][2]
    [super viewDidLoad];
    NSString *jsonString = [NSString stringWithString:@"{\"foo\": \"bar\"}"];
    NSDictionary *dictionary = [jsonString JSONValue];
    NSLog(@"Dictionary value for \"foo\" is \"%@\"", [dictionary objectForKey:@"foo"]);

        //This is your code, just changed some stuff...

        NSString *hotelname = (NSString *) [jsonString valueForKey:@"?"];
        LabelName.Text= hotelname;
}

Надеюсь, это помогло, ура.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...