【问题标题】:display nested JSON in ruby on rails在 ruby​​ on rails 中显示嵌套的 JSON
【发布时间】:2020-02-19 01:15:04
【问题描述】:

我相信这将是一个简单的解决方法,但我尝试的一切都不起作用。

我正在从外部 API 获取数据,我正在查看匹配 id 后显示的数据。

数据是 JSON 并且有一些嵌套的内容。

我尝试了以下方法

<li>Street: <%= @users.find{|u| u['id'] == @album['userId']}.try(:[],'address''street') || 'not available' %></li>

数据的结构是这样的

{
  {
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "Sincere@april.biz",
    "address": {
      "street": "Kulas Light",
      "suite": "Apt. 556",
      "city": "Gwenborough",
      "zipcode": "92998-3874",
      "geo": {
        "lat": "-37.3159",
        "lng": "81.1496"
      }
    },
}

【问题讨论】:

    标签: ruby-on-rails arrays json ruby


    【解决方案1】:

    你会希望它是:

    <li>Street: <%= @users.find{|u| u['id'] == @album['userId']}.try(:[],'address').try(:[],'street') || 'not available' %></li>
    

    对于多级try,您可能需要查看dig

    另外,如果迭代与您之前的问题一样,那么@album 可能需要为album。如果这与您之前的问题不同,请忽略。

    【讨论】:

      【解决方案2】:

      这就是dig 的用处:

      https://ruby-doc.org/core-2.3.0_preview1/Hash.html

      <li>Street: <%= @users.find{|u| u['id'] == @album['userId']}.dig(:address, :street)  || 'not available' %></li>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-19
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        • 1970-01-01
        相关资源
        最近更新 更多