我是 JSON 新手,正在尝试解析以下 URL 返回的数据
https://api.binance.com/api/v3/klines?symbol=LTCBTC&interval=5m
如果您想查看确切的输出,数据是公开的
我在 Oracle 18c 数据库中尝试使用 json_table,但我不确定如何格式化查询或引用列,因为 JSON 没有名称,只有值。
如果我只粘贴数组中的一条记录,如下所示,那么我可以获得包含所有值的一列,但我需要解析整个数组并将输出放入表中
SELECT *
FROM json_table( '[1617210000000,"0.00325500","0.00326600","0.00325400","0.00326600","780.81000000",1617210299999,"2.54374363",210,"569.58000000","1.85545803","0"]' , '$[*]'
COLUMNS (value PATH '$' ))
Run Code Online (Sandbox Code Playgroud)
我已经在谷歌上搜索了好几天,但没有找到我想要做的事情的示例,所有示例都使用带有名称:值对的 JSON。
先感谢您。
原始数据是一个数组数组,因此您可以使用它$[*]来获取各个数组,然后使用编号位置来获取每个数组中的值:
SELECT *
FROM json_table(
'[[...], [...], ...]', -- use actual data, as CLOB?
'$[*]'
COLUMNS (
open_time PATH '$[0]',
open PATH '$[1]',
high PATH '$[2]',
low PATH '$[3]',
close PATH '$[4]',
volume PATH '$[5]',
close_time PATH '$[6]',
quote_av PATH '$[7]',
number_of_trades PATH '$[8]',
taker_buy_base_av PATH '$[9]',
taker_buy_quote_av PATH '$[10]',
ignore PATH '$[11]'
)
)
Run Code Online (Sandbox Code Playgroud)
我从API 文档中获取了列名称。不知道为什么有些是字符串,大概是一个精确的东西;但您显然可以指定数据类型。(如果您想这样做,有很多将纪元时间戳转换为 Oracle 日期/时间戳的示例。)
db<>摆弄四个条目,以及一个附加的序数列,您可能不想要/不需要。
SELECT *
FROM json_table(
'[[...], [...], ...]', -- use actual data, as CLOB?
'$[*]'
COLUMNS (
open_time PATH '$[0]',
open PATH '$[1]',
high PATH '$[2]',
low PATH '$[3]',
close PATH '$[4]',
volume PATH '$[5]',
close_time PATH '$[6]',
quote_av PATH '$[7]',
number_of_trades PATH '$[8]',
taker_buy_base_av PATH '$[9]',
taker_buy_quote_av PATH '$[10]',
ignore PATH '$[11]'
)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
998 次 |
| 最近记录: |