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)
您好,我正在学习 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)