JSON Ruby/Sinatra 的数据库模块? Ruby/Sinatra 的 JS lowDB 替代品?
JSON database module for Ruby/Sinatra? A JS lowDB alternative for Ruby/Sinatra?
我必须处理像这样充当实时数据源的巨大 json,每 5 分钟从 url..
加载一次
sports: [
{
id: 200,
title: "Horse Racing",
meetings: [ ],
is_virtual: false,
events: [...],
pos: 83
},
{
id: 600,
title: "Tennis",
meetings: [ ],
is_virtual: false,
events: [
{
id: 301804310,
is_virtual: false,
outcomes: [
{
id: 32779738900,
description: "Brown/Pliskova",
},
{
id: 32779738900,
description: "Brown/Pliskova",
}]
}]
}]
并且需要编写类似
的方法
- getAllSports() 返回包含所有运动项目的数组对象
- getSport(sport_id) 返回具有此运动 ID 的对象
- getAllEvents(Sport) 返回此 sprot 的所有事件列表对象
- getEvent(Sport, event_id) 返回与给定 event_id
匹配的事件
- getOutcomes(Event, outcomes) ...等等
是否有一个库可以解析 json 并且已经有一些方法可以帮助我做这类事情?示例:obj.find(sport_id)...
在 JS 中你有 LowDB https://github.com/typicode/lowdb,在 Ruby/Sinatra 中有类似的吗?或者任何方法建议?我没有使用 Rails.
谢谢指教
您始终可以使用 Ruby 的内置 JSON 库。你可以做类似
的事情
json_string = '{"name": "my name", "age": 5}'
object = JSON.parse(json_string)
object["name"] => "my name"
然后您可以在 returned 对象上使用常规 ruby 哈希/数组函数。在你的情况下,你可以按照
的方式做一些事情
def getSport(json_object, id)
json_object["sports"].select { | h | h["id"] == id }.first
end
其中,假设您已经解析了 JSON 并将结果值传递给该函数,return 具有给定 ID 的运动。
我必须处理像这样充当实时数据源的巨大 json,每 5 分钟从 url..
加载一次sports: [
{
id: 200,
title: "Horse Racing",
meetings: [ ],
is_virtual: false,
events: [...],
pos: 83
},
{
id: 600,
title: "Tennis",
meetings: [ ],
is_virtual: false,
events: [
{
id: 301804310,
is_virtual: false,
outcomes: [
{
id: 32779738900,
description: "Brown/Pliskova",
},
{
id: 32779738900,
description: "Brown/Pliskova",
}]
}]
}]
并且需要编写类似
的方法- getAllSports() 返回包含所有运动项目的数组对象
- getSport(sport_id) 返回具有此运动 ID 的对象
- getAllEvents(Sport) 返回此 sprot 的所有事件列表对象
- getEvent(Sport, event_id) 返回与给定 event_id 匹配的事件
- getOutcomes(Event, outcomes) ...等等
是否有一个库可以解析 json 并且已经有一些方法可以帮助我做这类事情?示例:obj.find(sport_id)...
在 JS 中你有 LowDB https://github.com/typicode/lowdb,在 Ruby/Sinatra 中有类似的吗?或者任何方法建议?我没有使用 Rails.
谢谢指教
您始终可以使用 Ruby 的内置 JSON 库。你可以做类似
的事情json_string = '{"name": "my name", "age": 5}'
object = JSON.parse(json_string)
object["name"] => "my name"
然后您可以在 returned 对象上使用常规 ruby 哈希/数组函数。在你的情况下,你可以按照
的方式做一些事情def getSport(json_object, id)
json_object["sports"].select { | h | h["id"] == id }.first
end
其中,假设您已经解析了 JSON 并将结果值传递给该函数,return 具有给定 ID 的运动。