gpt4 book ai didi

javascript - Ruby/Sinatra 的 JSON 数据库模块? Ruby/Sinatra 的 JS lowDB 替代品?

转载 作者:行者123 更新时间:2023-12-03 08:06:21 28 4
gpt4 key购买 nike

我必须处理像这样充当实时数据源的巨大 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(事件、结果) ...等等

是否有一个库可以解析 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"

然后,您可以在返回的对象上使用常规 ruby​​ 哈希/数组函数。就您而言,您可以按照以下方式做一些事情

def getSport(json_object, id)
json_object["sports"].select { | h | h["id"] == id }.first
end

假设您已经解析了 JSON 并将结果值传递到该函数中,则会返回具有给定 ID 的运动。

关于javascript - Ruby/Sinatra 的 JSON 数据库模块? Ruby/Sinatra 的 JS lowDB 替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34372816/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com