ruby-on-rails – 使用Ruby搜索JSON响应
发布时间:2020-12-16 20:14:01 所属栏目:百科 来源:网络整理
导读:我使用 Ruby脚本与应用程序API进行接口,返回的结果是JSON格式的.例如: { "incidents": [ { "number": 1,"status": "open","key": "abc123" } { "number": 2,"key": "xyz098" } { "number": 3,"status": "closed","key": "lmn456" } ]} 我正在寻找一个特定的
我使用
Ruby脚本与应用程序API进行接口,返回的结果是JSON格式的.例如:
{ "incidents": [ { "number": 1,"status": "open","key": "abc123" } { "number": 2,"key": "xyz098" } { "number": 3,"status": "closed","key": "lmn456" } ] } 我正在寻找一个特定的“键”值(在本示例中为yzx098)的每个块,并返回相关的“数字”值. 现在,我对Ruby很新,我不知道是否已经有一个功能来帮助实现这一点.然而,几天的Google Googles和Ruby资源书籍的研究并没有产生任何有用的东西. 有什么建议么? 解决方法
首先,JSON应该如下:(注意逗号)
{ "incidents": [ { "number": 1,"key": "abc123" },{ "number": 2,"key": "xyz098" },{ "number": 3,"key": "lmn456" } ] } 将上面的json放在一个变量中 s = '{"incidents": [{"number": 1,"key": "abc123"},{"number": 2,"key": "xyz098"},{"number": 3,"key": "lmn456"}]}' 解析JSON h = JSON.parse(s) 使用地图查找所需数量 h["incidents"].map {|h1| h1['number'] if h1['key']=='xyz098'}.compact.first 或者您也可以使用下面的查找 h["incidents"].find {|h1| h1['key']=='xyz098'}['number'] 或者您也可以使用select如下 h["incidents"].select {|h1| h1['key']=='xyz098'}.first['number'] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |