11.5 递归获取字段值

 

根据 JSON 格式的销售数据,计算 2014 年的总销售额。文件部分数据如下:

[
  {"YEAR":2013,"MONTH":7,"SALES": [
    {"ID":10248,"CUSTOMERID":"VINET", … ,"SALES":2440},
    {"ID":10249,"CUSTOMERID":"TOMSP", … ,"SALES":1863.4},
    {"ID":10250,"CUSTOMERID":"HANAR", … ,"SALES":1813.0},
    …
  ]},
  {"YEAR":2013,"MONTH":8,"SALES": [
    {"ID":10270,"CUSTOMERID":"WARTH", … ,"SALES":1376.0},
    {"ID":10271,"CUSTOMERID":"SPLIR", … ,"SALES":48.0},
    {"ID":10272,"CUSTOMERID":"RATTC", … ,"SALES":1456.0},
    …
  ]},
  …
]

使用 A.field@r() 递归获取字段值。

脚本:

A
1 =json(file(“sales.json”).read())
2 =A1.select(YEAR==2014)
3 =A2.field@r(“SALES”)
4 =A3.sum(~.sum())

A1:导入 JSON 数据文件。
A2:选出 2014 年的销售记录。
A3:使用函数A.field@r ()递归获取所有销售字段值。
A4:循环计算 2014 年每个月份的销售额,再计算总销售额。