Можем ли мы получить определенный метод из файла json и отобразить его в пользовательском интерфейсе? - PullRequest
0 голосов
/ 27 июня 2011

Привет всем, я новичок в разработке для iphone ... Я делаю какое-то приложение, где я застрял ... У меня есть текстовое поле, кнопка и веб-просмотр ..

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

Я хочу ввести строку или метод в текстовое поле, которое присутствует в файле JSON. Оно должно совпадать с методом в файле json и отображать содержимое метода в веб-просмотре..

Я сделал с помощью кнопки и веб-просмотра ... Я хочу расширить текстовые поля и веб-просмотр ..

Как мы можем это сделать?Пожалуйста, предложите мне пример кода ...

// code

 - (void)loadData
    {
        dataWebService = [[NSMutableData data] retain];

        NSURLRequest *request = [[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://api.kivaws.org/v1/loans/search.json?status=fundraising"]]retain];  

          [[NSURLConnection alloc]initWithRequest:request delegate:self];
    }


    -(void)connectionDidFinishLoading:(NSURLConnection *)connection
    {
        [connection release];    
        NSString *responseString = [[NSString alloc] initWithData:dataWebService encoding:NSUTF8StringEncoding];

        self.dataWebService = nil;

        NSArray* latestLoans = [(NSDictionary*) [responseString JSONValue] objectForKey:@"loans"]; 

        [responseString release];    

        NSDictionary* loan = [latestLoans objectAtIndex:0];

        //fetch the data
        NSNumber* fundedAmount = [loan objectForKey:@"funded_amount"];

        NSNumber* loanAmount = [loan objectForKey:@"loan_amount"];

        float outstandingAmount = [loanAmount floatValue] - [fundedAmount floatValue];

        NSString* name = [loan objectForKey:@"name"];

        NSString* country = [(NSDictionary*)[loan objectForKey:@"location"] objectForKey:@"country"];

        //set the text to the label
        label.numberOfLines = 0;

        label.text = [NSString stringWithFormat:@"Latest loan: %@ \n \n country:  %@ \n \n amount: $%.2f", name,country,outstandingAmount];
 }

1 Ответ

1 голос
/ 27 июня 2011

Я думаю, что вы спрашиваете: «Как я могу ввести часть URL-адреса в текстовое поле, добавить его к базовому URL-адресу и загрузить в веб-просмотр?»

Если это так, вы можете сделатьэто довольно легко.Если ваше текстовое поле называется «текстовое поле», а веб-просмотр называется «веб-просмотр», то сделайте следующее:

NSString *baseUrl = @"http://whatever.com";
NSString *fullUrl = [baseUrl stringByAppendingString:textfield.text];
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:fullUrl]]];

Запустите его либо нажатием кнопки, либо с помощью UITextFieldDelegate - (BOOL)textFieldShouldReturn:(UITextField *)textField

Редактировать:

Вы хотите получить значение из NSDictionary, сгенерированное JSON на основе ключа, указанного в текстовом поле.Во-первых, выполните

NSString *value = [dictionary objectForKey:textfield.text];

, чтобы получить значение (при условии, что это строка здесь).Затем вы хотите отобразить значение в веб-просмотре.Вы можете сделать это либо с помощью loadHTMLString:baseURL:, либо с помощью javascript через stringByEvaluatingJavaScriptFromString: (оба метода UIWebView).Если вы хотите использовать loadHTMLString, например, вы можете ввести

NSString *html = [NSString stringWithFormat:@"<html><body>%@</body></html>", value];
[webview loadHTMLString:html baseURL:nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...