如何在Dyalog APL中将JSON转换为纯数组?
Dyalog APL 解析币安API数据:将命名空间结构转为纯数值数组
方法一:修改JSON解析选项,直接生成数组结构
默认情况下⎕JSON会将JSON对象解析为命名空间,你可以通过指定'Namespaces' 0选项,让JSON对象直接解析为嵌套数组,后续转数值会更简单:
; 解析JSON时禁用命名空间生成 data ← ⎕JSON⊢'Namespaces' 0⊢json ; 将字符串数组转为数值数组 numericAsks ← ⍎↑data.asks
这样numericAsks就是纯数值的二维数组,每行对应一组价格和数量。
方法二:从已有的命名空间结构提取转换
如果已经解析得到含子命名空间的data.asks,可以通过遍历每个子命名空间提取字段并转换数值:
假设每个子命名空间包含price和qty(或对应币安返回的字段名,如p、q)字段,执行以下代码:
; 遍历每个子命名空间,提取字段并转数值,最后组合为二维数组 numericAsks ← ↑{⍎⍵.price,⍎⍵.qty}¨data.asks
如果字段名不同,只需替换⍵.price和⍵.qty为实际的命名空间成员名即可。
验证结果
可以通过⍴numericAsks查看数组维度,或直接打印前几行确认格式:
⊢5↑numericAsks ; 显示前5组价格和数量
内容的提问来源于stack exchange,提问作者конструктор
相关产品推荐
相关产品推荐

