【问题标题】:Parsing out multiple API JSON response parameters解析出多个 API JSON 响应参数
【发布时间】:2015-01-15 17:54:50
【问题描述】:

我从 API 收到一个 JSON 响应,但是该响应有几个关键参数,它们都称为“夹克”,具有不同的值。我能够解析出第一个键,但我没有得到其余的值。这是一些代码,我可能以错误的方式接近这个:

parsed_list = JSON.parse(get_response.body) 
orig = parsed_list["_links"]["stuff"]["orig"]
serv = parsed_list["_links"]["stuff"]["serv"]
puts orig.first["jacket"]
puts serv.first["jacket"]

=> 123456789
=> 987654321

这是我解析出 JSON 响应并将其设置为“parsed_list”之前的样子

    "_links": {
"self": {
  "href": "url"
},
"stuff": {
  "href": "url",
  "orig": [
    {
      "jacket": "123456789",
      "Id": "x",
      "selected": true,
    }
  ],
  "serv": [
    {
      "jacket": "987654321",
      "Id": "xx",
      "selected": false,
    },
    {
       "jacket": "0000000001",
      "Id": "xx",
      "selected": false,
    },
    {
       "jacket": "1111111110",
      "Id": "xx",
      "selected": false,
    }
  ]
 }
}
}

我需要能够提取所有“夹克”值。

【问题讨论】:

  • 您如何尝试获取其余值?当然不是first。此外,编辑您的问题以清理原始 JSON 的格式——代码块后悬空的“}}”。
  • 哎呀,抱歉,忽略了这一点;固定的。我最终使用了 .first ,因为没有它我得到错误 `[]': no implicit conversion of String into Integer (TypeError)。我一直在弄清楚如何获得其余的值。

标签: ruby json api parsing


【解决方案1】:

数据就在那里,你只需要得到它:

serv.collect do |entry|
  entry['jacket']
end

【讨论】:

  • Enumerable 模块中有很多值得自己熟悉的好东西。这真是一个工具箱。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-27
  • 2022-01-12
  • 2016-11-15
  • 2017-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多