首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从符合条件的JSON中提取数据?

如何从符合条件的JSON中提取数据?
EN

Stack Overflow用户
提问于 2014-09-06 13:23:34
回答 1查看 500关注 0票数 0

我有一个JSON file,我想只获取满足条件的所有值的键。即(屏幕> 7%)和(jira > 8)。以下是JSON文件。

代码语言:javascript
复制
    {
  "screen": {
      "/theaters":            16.86,
      "/boxoffice":           12.87,
      "/theater/info":        11.07,
      "/theater/tickets":     7.00,
      "/TopBoxOffice":        4.34,
      "/upcoming":            4.02,
      "/new-releases":        3.49,
      "/trailer":             3.49,
      "/showtimes":           3.39,
      "/DvdOther":            3.13,
      "/MOB":                 2.85
  },

  "jira": {
      "theater":                      12,
      "showtime":                     11,
      "quantity":                     3,
      "card":                         4,
      "review":                       1,
      "confirm":                      1
    }

}

输出应如下所示:

代码语言:javascript
复制
screen = ["/theaters", "/boxoffice", "/theater/info"]
jira = ["theater", "showtime" ]

我当前的实现如下所示:

代码语言:javascript
复制
file      = File.read('ga_jira.json')
data_hash = JSON.parse(file)
screen    = data_hash['screen']
jira      = data_hash['jira']

pp screen.select {|k,v| k > 7}
pp jira.select {|k,v| k > 7}

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-09-06 14:42:33

我看不出你的用法有什么问题。你得到的是啥?

代码语言:javascript
复制
require 'json'

s = '{
 "screen": {
     "/theaters":            16.86,
  ...'

JSON.parse(s)['screen'].select{|k,v| v > 7 }
=> {"/theaters"=>16.86, "/boxoffice"=>12.87, "/theater/info"=>11.07}

JSON.parse(s)['jira'].select{|k,v| v > 7 }
=> {"theater"=>12, "showtime"=>11}

JSON.parse(s)['screen'].select{|k,v| v > 7 }.keys
=> ["/theaters", "/boxoffice", "/theater/info"]

JSON.parse(s)['jira'].select{|k,v| v > 7 }.keys
=> ["theater", "showtime"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25697110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档