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

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

ただいまの
回答率

87.96%

json形式の値をtextで表示させたい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,047

score 15

jsonの値を.textで表示させたいのですが、うまくいきません!
表示させたい内容------------------
menu の中にある   
"name"の中身 "並盛り" 
"price"    "300"
"kcal"        "680"


参考にした サイト
http://iscene.jimdo.com/2015/06/20/objective-c-json%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF/

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad{
    [super viewDidLoad];

    //1つめ json値取得
    self.view.backgroundColor = [UIColor whiteColor];

    // 読込ローカル

        // データの取得
        NSBundle *bnd01 = [NSBundle mainBundle];
        NSString *pth01 = [bnd01 pathForResource:@"test" ofType:@"json"];
        NSURL *url01 = [NSURL fileURLWithPath:pth01];

        NSURLRequest *req01 = [NSURLRequest requestWithURL:url01];

        NSData *dat01 = [NSURLConnection sendSynchronousRequest:req01
                                              returningResponse:nil error:nil];
    // JSONオブジェクトの取得
    NSDictionary *cor01 =(NSDictionary *)
    [NSJSONSerialization JSONObjectWithData:dat01
                                    options:NSJSONReadingMutableContainers // 基本的にはこれを選ぶ
                                      error:nil];

    for (NSDictionary *cor02 in cor01[@"menu"]) {
        NSLog(@"%@, %@, %@",
              cor02[@"name"],
              cor02[@"price"],
              cor02[@"kcal"]);
    }
    _Read_label.text = @"hoge";

        _jsonAns = cor01[@"name"];
        _Read_label.text = _jsonAns;

}

    // test.json--------------------

//{
//    "menu": [
//             {"name": "並盛", "price": 300, "kcal": 680},
//             {"name": "アタマの大盛", "price": 390, "kcal": 733},
//             {"name": "大盛", "price": 460, "kcal": 851},
//             {"name": "特盛", "price": 560, "kcal": 1022}
//             ]
//}

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2016/12/09 18:53

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

  • fuzzball

    2016/12/09 18:54

    for文の中のNSLogでは表示されているのでしょうか?

    キャンセル

回答 1

checkベストアンサー

0

 その1

.jsonのファイル名が間違っています。

NSString *pth01 = [bnd01 pathForResource:@"Test01" ofType:@"json"];

 その2

NSDictionary *obj = cor01[@"menu"][0]; //0=並盛
NSLog(@"%@, %@, %@", obj[@"name"], obj[@"price"], obj[@"kcal"]);
//=> 並盛, 300, 680

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/12/09 18:37

    ご指摘ありがとうございます!直して試したのですが、値を取ることができませんでした。。。

    キャンセル

  • 2016/12/09 18:38

    その2を追記しました。

    キャンセル

  • 2016/12/13 15:22

    ありがとうございます!!!!できました!!!

    キャンセル

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

  • ただいまの回答率 87.96%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る