【问题标题】:How to build an image using json data如何使用 json 数据构建图像
【发布时间】:2021-04-20 10:10:01
【问题描述】:

我需要一种方法来使用提供的 json 数据构建图像。我有 json 文件,其中包含用户组合。归根结底,我想将 json 数据转换为图像,以便每次用户进入页面时都需要制作图表。但我不知道如何开始。

json 文件看起来像

 {
   {
      "time": 1585440000,
      "closing_balance": 5882.2
   },
   {
      "time": 1585526400,
      "closing_balance": 6403.31
   },
   {
      "time": 1585526400,
      "closing_balance": 7403.31
   },
   {
      "time": 1585526400,
      "closing_balance": 5403.31
   },...
}

现在我想通过每天一次转换为图像来以图形格式显示上述数据。

【问题讨论】:

  • 也许可以添加更多细节? json 文件长什么样?我很困惑,您要提取的 json 文件中是否有图像,或者您想要构建图表的只是普通数据?或许也可以分享一下结果预期会是什么样子?
  • 我会添加细节

标签: ruby-on-rails json image


【解决方案1】:

您的 json 数据非常简单,因此您可以在控制器中读取 JSON 文件并将其与像 https://github.com/ankane/chartkick 这样的 gem 一起使用

您需要首先让 gem 使用您的数据,您只需要读取 json 文件并将日期映射到值(假设您需要折线图或条形图)

在您的控制器中:

json_file = File.read('path-to-your-file.json')
data = JSON.parse(json_file)
@data = data.each_with_object({}) do |data_hash, new_hash|
  new_hash[Time.at(data_hash["time"]).to_datetime] = data_hash["closing_balance"]
end
# this will give you something like: {Sun, 29 Mar 2020 00:00:00 +0000=>5882.2, Mon, 30 Mar 2020 01:00:00 +0100=>5403.31}

在你看来:

  <%= line_chart @data %>

确保可能安装 gem(上面 gem 链接中的文档)

请注意,您当前的 json 文件(您发送的那个)已损坏,它应该是一个包含多个哈希的数组,而不是一个包含多个没有键的哈希的哈希


[
   {
      "time": 1585440000,
      "closing_balance": 5882.2
   },
   {
      "time": 1585526400,
      "closing_balance": 6403.31
   },
   {
      "time": 1585526400,
      "closing_balance": 7403.31
   },
   {
      "time": 1585526400,
      "closing_balance": 5403.31
   }
]

而且多次是相同的,所以图表将只显示当时的第一个值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-12
    • 2017-02-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    相关资源
    最近更新 更多