質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Q&A

解決済

1回答

4638閲覧

【Objective-c】 JSON形式のデータの取得方法

tatsuya1970

総合スコア18

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

0グッド

0クリップ

投稿2016/08/13 23:45

初歩的な質問だと思うのですが、ググって色々なソースを試してもうまくいかず、投稿する次第ですので、何卒よろしくお願いします。

【環境など】
Objective-C
Xcode 7.3
対象API: Google Maps Elevation API

##J-SONファイル

json

1{ 2 "results" : [ 3 { 4 "elevation" : 1608.637939453125, 5 "location" : { 6 "lat" : 39.7391536, 7 "lng" : -104.9847034 8 }, 9 "resolution" : 4.771975994110107 10 } 11 ], 12 "status" : "OK" 13} 14

##Objective-C

- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; NSString *url = @"https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&key=*********************************”; NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; NSData *json = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingAllowFragments error:nil]; NSLog(@"標高:%@", dic[@"results"]); NSLog(@"標高:%@", [dic valueForKey:@"elevation"]); NSLog(@"標高:%@", [[dic valueForKey:@"result"] valueForKey:@"elevation"]); }

##ログ結果
全体のデータは読み込めているのですが、標高データ(elevation)が取得できません。
※dokoはプロジェクト名です。

2016-08-14 08:20:14.845 doko[2373:446393] 結果:( { elevation = "1608.637939453125"; location = { lat = "39.7391536"; lng = "-104.9847034"; }; resolution = "4.771975994110107"; } ) 2016-08-14 08:20:14.845 doko[2373:446393] 標高:(null) 2016-08-14 08:20:14.845 doko[2373:446393] 標高:(null)

以上、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

載せてあるJSONをファイルにしてBundleから読み込んだところ以下のコードで正常に読めました。
dicの値等確認してみてください。

objC

1 2NSString *path = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"json"]; 3NSData *data = [NSData dataWithContentsOfFile:path]; 4 5NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; 6 7NSLog(@"dic = %@",dic); 8/* 9dic = { 10 results = ( 11 { 12 elevation = "1608.637939453125"; 13 location = { 14 lat = "39.7391536"; 15 lng = "-104.9847034"; 16 }; 17 resolution = "4.771975994110107"; 18 } 19 ); 20 status = OK; 21} 22*/ 23 24NSLog(@"標高:%@", [dic[@"results"] valueForKey:@"elevation"]); 25//=> "1608.637939453125"

投稿2016/08/14 00:48

_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tatsuya1970

2016/08/14 00:53

こんなに早くご回答をいただき、ありがとうございました! これで、いろいろなAPIを使ったアプリに挑戦できます! 本当にありがとうございました。
tatsuya1970

2016/08/14 02:41

すいません。もう1つ質問よろしいでしょうか? JSONから取り出したデータはダブルクォーテーションで囲まれてます。 ダブルクォーテーションを削除するにはどうしたらよろしいでしょうか?
tatsuya1970

2016/08/14 03:03

具体的に言いますと、 この後、ダブルクオーテーションを外すべく、 NSString *str = [dic[@"results"] valueForKey:@"elevation"]; str = [str stringByReplacingOccurrencesOfString:@"\"" withString:@""]; と書いて、実行すると、コンソールに以下のエラーが出て、アプリが止まります。 エラー [__NSArrayI stringByReplacingOccurrencesOfString:withString:]: unrecognized selector sent to instance 0x137f11750 重ね重ねご教授いただければ幸いです。
tatsuya1970

2016/08/14 11:07

新しく質問し直します。
_Kentarou

2016/08/14 12:03

すみません、自分の回答の間違えに気づき今こちらにコメントしようとしていました、、、 新し方に書き直します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問