2017-07-27 13 views
0

これは私のjsonファイルです。リスト内のキーtitleにある値を取得したいと考えています。すなわちLiveHealthOneMedicalvisit guardianjsonキーに関連付けられた値にアクセスする

{ 
    "data": { 
    "perksAndWellBeing": [ 
     { 
     "title": "Physical Wellbeing", 
     "perks": [ 
      { 
      "id": "a3N33000EAO", 
      "logo": "https:933000001P3v1AAC-1.png", 
      "logoLarge": "https:\33000001P3v6AAC-1.png", 
      "title": "LiveHealth Online", 

      }, 
      { 
      "id": "a3N3300AO", 
      "logo": "https:\/\-attachments\/06933000001P3uwAAC-1.png", 
      "logoLarge": "https:/hments\/06933000001P3umAAC-1.png", 
      "title": "One Medical", 

      }, 
      { 
      "id": "a3N3300EA4", 
      "logo": "https:\/\/s33000001P3vQAAS-1.png", 
      "logoLarge": "https:\/06933000001P3vVAAS-1.png", 
      "title": "Access To Top Specialists", 

      } 
     ] 
     }, 
     { 
     "title": "Emotional Wellbeing", 
     "perks": [ 
      { 
      "id": null, 
      "logo": "https:\/\/s00001P3vpAAC-1.png", 
      "logoLarge": "https:\/\/attachmeOAAS-1.png", 
      "title": "Visit Guardian EAP", 

      } 
     ] 
     }, 
     { 
     "title": "Financial Wellbeing", 
     "perks": [ 
      { 
      "id": "a3N3300HEA4", 
      "logo": "https:\/\/sg", 
      "logoLarge": "https:\/SAAS-1.png", 
      "title": "Track your finances and get free access to financial advice", 

      }, 
      { 
      "id": "a3N33000EA4", 
      "logo": "https:\/\/s", 
      "logoLarge": "https:\/\/", 
      "title": "Better student loan refinancing, mortgages, and personal loans", 

      } 
     ] 
     }, 
     { 
     "title": "Perks", 
     "perks": [ 
      { 
      "id": "a3N3300LxEAO", 
      "logo": "https:\/\", 
      "logoLarge": "https:\/, 
      "title": "Anthem Programs", 

      }, 
      { 
      "id": "a3N3300000EA4", 
      "logo": "https:\", 
      "logoLarge": "https:\", 
      "title": "Receive gym discounts, travel discounts, and more", 

      } 
     ] 
     } 
    ] 
    } 
} 

現在、私はPhysical wellbeingEmotional wellbeingとしての価値を持っているタイトルのを取得することですが、私は、リスト内の値にアクセスすることはできませんよ。

perkswellbeing = JSON.parse(perks) 
    #puts perkswellbeing 
    puts "*********************" 
    g = JSON.parse(perks) 
    result1 = g["data"]["perksAndWellBeing"].select {|g1| g1['title']} 
    result1.each do |rest1| 
    $perks = rest1['title'] 
    puts $perks 

私には分かりません!誰も私を助けてくれませんでしたか?

+0

私はあなたのJSONオブジェクトに問題があると思います。 –

+0

@SebastiánPalma私は再確認してください、私に最小限を与える –

+0

私はjson @SebastiánPalmaを更新しました –

答えて

1
json = JSON.parse(perks) 
perksAWB = json["data"]["perksAndWellBeing"] # array 

perks = perksAWB.map do |pawb| 
    pawb["perks"].map { |p| p["title"] } 
end # array of titles 

puts perks.inspect # printing, or: 

flattenを使用し、カッコなしですべてを印刷するには:

perks.flatten.each(&method(:puts)) 
+0

ありがとう!これはうまくいきますが、結果から '[] 'を削除するにはどうすればいいですか?私は大括弧の中に結果を残したくありません。私は '.map'が大括弧の中に結果を返すと思いますか? –

+0

これらの結果は、角かっこなしで印刷することをお勧めします。 '[" LiveHealth Online "、" One Medical "、"トップスペシャリストへのアクセス "]、" Visit Guardian EAP "金融アドバイス」、 『より良い学生ローンの借り換え、住宅ローン、個人ローン』]、[ 『アンセムプログラム』、 『』ジムの割引、旅行割引、より多くの受信]] ' –

+0

への無料アクセス私は答え更新しました:使用をその結果を「平らにする」。 – mudasobwa

関連する問題