2010-12-30 15 views
0

私はThree20を使用していて、JSONを使用してTTPhotoViewControllerを設定したいとします。私は、Webアドレスに移動した場合、のは言わせThree20 + JSON構文解析

www.bbc.com/jsonoutput 

私は、次の取得

{"name":"MyName","curNiceDate":"Wed 29 Dec 10","images":["UK\/2010\/12\/29\/1.jpg","US\/2010\/12\/29\/2.jpg","EU``\/2010\/12\/29\/3.jpg","FR\/2010\/12\/29\/4.jpg","FR\/2010\/12\/29\/5.jpg","FR\/2010\/12\/29\/6.jpg","FR\/2010\/12\/29\/7.jpg","FR\/2010\/12\/29\/8.jpg","FR\/2010\/12\/29\/9.jpg"]} 

私はwww.bbc.com/images/にある画像を選ぶにしたいです。

これらのディレクトリはすべて、上記のアドレスに関連する画像の場所です。どのように私は、JSONの出力からこの情報を引き出して行くと、この

www.bbc.com/UK/2010/12/29/1.jpg 

www.bbc.com/US/2010/12/29/2.jpg 

www.bbc.com/EU/2010/12/29/3.jpg 

www.bbc.com/FR/2010/12/29/4.jpg 

のようになります。だから私はTTPhotoViewピッカーにそれを養うことができURLにそれになるだろう。

お願いします。

+0

さまざまな情報については、[この質問](http://stackoverflow.com/questions/2256625/comparison-of-json-parser-for-objective-c-json-framework-yajl-touchjson-etc)を参照してください。 JSONライブラリ私は[JSONKit](https://github.com/johnezang/JSONKit)の著者になりました。 – johne

答えて

1

https://github.com/stig/json-framework非常に使いやすいです。私がコードでどのように使用したかを見てもわかりません。here

+0

ありがとう、私はThree20に独自のJSON Parserがあると言われましたか、別のものをインポートする方がいいですか? – user370507

+1

https://github.com/facebook/three20/tree/master/src/extThree20JSON。これを使用して上記を実行しようとしています – user370507

+1

同じフレームワークを使用しています... https://github.com/facebook/three20/tree/master/src/extThree20JSON/Vendors/JSON –

3

私はTouchJSONに満足していて、使い方もとても簡単です。私はASIHTTPRequestと組み合わせて使用​​しています。

質問に関連するコードを簡単に変更しました。

- (IBAction)getImages{ 
    NSURL *url = [NSURL URLWithString:@"www.bbc.com/jsonoutput"]; 
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
    [request setDelegate:self]; 
    [request startAsynchronous]; 
} 

- (void)requestFinished:(ASIHTTPRequest *)request{ 
    NSError *error; 
    NSDictionary *bbcData = [[CJSONDeserializer deserializer] deserializeAsDictionary:[request responseData] error:&error]; 
    //TODO: do something with the error 
    NSArray *images = [bbcData objectAtIndex:@"images"]; 
    NSLog(@"%@", images); 
} 

- (void)requestFailed:(ASIHTTPRequest *)request{ 
    NSError *error = [request error]; 
    //TODO: do something with the error 
} 
+0

例をお寄せいただきありがとうございます!私は今より良いアイデアを持っているので、本当に助けになりました! Three20に独自のJSON Parserがあり、別のものをインポートする代わりにそのパーサーを使用しようとしていると聞きましたが、苦労しています – user370507

+0

https://github.com/facebook/three20/tree/master/src/extThree20JSON – user370507

+0

ああ、知っておいてよかった。私はThree20フレームワークをまだ使用していません。 – keegan3d

0

json-frameworkが良いです。