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",
        }]
    }]
}]

并且需要编写类似

的方法

是否有一个库可以解析 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 的运动。