如何解析JSON和访问值

时间:2019-03-15 09:13:11

标签: json ruby

从此

{
  “students”: [
    {
      “name”: “test1”,
      "id": 1,
      "created_at": "2019-03-13T21:34:30Z",
      "updated_at": "2019-03-13T21:34:30Z",
      “title”: "My test ticket2",
      "description": “My test description!”
     }
  ],
  "count": 1
}

如何获取ID,说明和计数的值?我做到了:

JSON.parse(response)

但是我不确定如何获得价值。

2 个答案:

答案 0 :(得分:2)

您需要解析两次,如果只解析一次,则会收到错误消息: TypeError: no implicit conversion of Hash into String

您应该这样做:

parsed_response = JSON.parse(response.to_json)

然后您可以根据需要获取值:

parsed_response['students'][0]['id']

如果您的红宝石版本高于2.3,也可以使用dig方法:

parsed_response.dig('students', 0, 'id')
=> 1

答案 1 :(得分:1)

JSON.parse返回哈希值。

获取有关学生的信息

parsed_response = JSON.parse(response)
parsed_response['students'].first['id']
parsed_response['students'].first['name']
parsed_response['students'].first['description']

如果您有多个值,请使用each遍历它们。

获取次数

parsed_response = JSON.parse(response)
parsed_response['count']

您可以使用fetch[]来代替parsed_response.fetch('students')。请记住,如果缺少密钥,fetch会引发错误。