2017-07-27 163 views
0

這是我的json文件,我想要檢索列表下的密鑰title中存在的值。即LiveHealthOneMedicalvisit guardian訪問json密鑰相關值

{ 
    "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」,「訪問頂級專家」],[「訪問Guardian EAP」],[「跟蹤您的財務狀況並獲取免費獲得財務建議「,」更好的學生貸款再融資,抵押貸款和個人貸款「],[」國歌計劃「,」接受健身房折扣,旅遊折扣,等等]] ' –

+0

我已更新答案:使用結果是「變平」。 – mudasobwa