Return 来自哈希数组的特定值 - JSON

Return specific values from array of hashes - JSON

您好,我正在学习 rails,在我的应用中,我从
获取 json 格式的值 res = @client.spots(params[:location][:lat], params[:location][:lng], :types => ['restaurant','food'], :radius => 500)

在我的 res 对象中,我得到了这些值

{
  "json_result_object": {
    "business_status": "OPERATIONAL",
    "geometry": {
      "location": {
        "lat": 31.4734563,
        "lng": 74.2794873
      },
      
    },
    "icon": "https://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png",
    "name": "CP Five Star",
    "opening_hours": {
      "open_now": true
    }
      }
    ],
    "place_id": "ChIJjfE-TdoDGTkRMom8KQfI9Uc",
    "plus_code": {
      "compound_code": "F7FH+9Q Lahore, Pakistan",
      "global_code": "8J3PF7FH+9Q"
    },
   
  },
  "reference": "ChIJjfE-TdoDGTkRMom8KQfI9Uc",
  "place_id": "ChIJjfE-TdoDGTkRMom8KQfI9Uc",
  "vicinity": "Bilal Arcade, Abdul Haque Road, Block G Block G Phase 1 Johar Town, Lahore",
  "lat": 31.4734563,
  "lng": 74.2794873,
  "viewport": {
    "northeast": {
      "lat": 31.4748154802915,
      "lng": 74.28081473029151
    },
    "southwest": {
      "lat": 31.4721175197085,
      "lng": 74.2781167697085
    }
  },
  "name": "CP Five Star",
  "icon": "https://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png",
  "types": [
    "restaurant",
    "food",
    "point_of_interest",
    "establishment
  
}

现在我只想 return 一个 JSON 数组,其中只包含以下值 place_id 、 name 、 lat 液化天然气,图标

& 抱歉,我使用图片只是为了显示我在终端中的实际响应 image

您可以通过执行 res.class 来检查您的 res 对象类型是什么;如果它还不是散列,您可以按照步骤here将其转换为散列。

使用 res 哈希你可以 return JSON 这样的数组 -

[res["place_id"], res["name"], res["lat"], res["lng"], res["icon"]]

是的,最后,我找到了解决方案。 res 是一个数组,这个数组中有多个哈希,因为我是从 Google 地方 API 得到的,所以如果有人想访问名称、纬度、经度,place_id附近的餐馆,他可以通过以下代码通过 .Map 轻松完成。

resturants =res.map { |a| {id: a.place_id ,  name: a.name , lat: a.lat, lng: a.lng , icon: a.icon}}
    json_response "Successfully retrive data" , true, {Resturant: resturants }, :ok

注意:json_response 是我在应用程序控制器中的功能,您也可以使用 render json。

此外,如果您想要数组的数组,您可以通过

轻松完成

res.pluck(:name, :place_id , :lat , :lng, :icon)