我在學習如何在Objective-C中使用API。我正在使用這裏的數據:https://btc-e.com/api/2/ltc_usd/ticker,我只想要'最後'的值。我試圖提取這樣的值:從json字符串中提取值
NSURL * url=[NSURL URLWithString:@"https://btc-e.com/api/2/ltc_usd/ticker"];
NSData * data=[NSData dataWithContentsOfURL:url];
NSError * error;
NSMutableDictionary * json = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingMutableContainers error: &error];
NSArray *keys = [json allKeys];
NSString *jsonStr = [json objectForKey:keys[0]];
NSArray *c1 = [jsonStr componentsSeparatedByString:@"last = \""];
NSArray *c2 = [[c1 objectAtIndex:1] componentsSeparatedByString:@"\";"];
NSString *result = [c2 objectAtIndex:0];
NSLog(@"%@", result);
然而,這給了我以下錯誤:
2014-03-02 15:03:24.915 Litecoin Ticker[5727:303] -[__NSDictionaryM componentsSeparatedByString:]: unrecognized selector sent to instance 0x608000240690
2014-03-02 15:03:24.915 Litecoin Ticker[5727:303] -[__NSDictionaryM componentsSeparatedByString:]: unrecognized selector sent to instance 0x608000240690
我不能完全肯定這僅僅是提取API的價值觀的方式,但我似乎無法找到如何去做。誰能幫忙?
轉到json.org並瞭解JSON語法。它需要5-10分鐘,並知道它使一切更容易理解。 –
並且不需要使用'componentsSeparatedByString'。只需使用'objectForKey'來引用NSDictionarys(或者使用'[]']來引用新的表單)。 ''NSNumber * last = json [@「ticker」] [@「last」];' –
(而且,特別是從Web上取下數據時,請始終檢查NSJSONSerialization的值,如果爲零,至少NSLog出錯'值。) –