麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

集算器協助Java處理JSON

2019-11-14 15:01:02
字體:
來源:轉載
供稿:網友

  json是半結構化數據,java只能簡單解析,很難進行深度計算。集算器支持集合運算、有序計算、動態腳本執行,可降低json的計算難度。集算器還提供了簡單易用的JDBC接口,JAVA可將集算器腳本文件當做數據庫存儲過程執行,傳入參數并用JDBC獲得返回結果,詳情參考集算器用作Java計算類庫的應用結構

  下面舉例說明JAVA處理json時常見的難題,以及集算器對應的解法。

  json分組匯總

  order.json存儲著訂單記錄,現在要按時間段匯總每個月每個客戶貢獻的銷售額,部分源數據如下:

esProc_java_json_1

  集算器代碼:

 

A

1

=file(“D://order.json”).read().import@j()

2

=A1.select(OrderDate>=argBegin && OrderDate<=argEnd)

3

=A2.groups(month(OrderDate):Month,Client;sum(Amount):subtotal)

  將json文件讀為二維表,進行性條件查詢,再進行分組匯總,其中argBegin、argEnd是JAVA參數。結果如下:

esProc_java_json_3

  解析字段不定的json

  Data.json每個文檔的字段數不定,字段順序不定,如下:

esProc_java_json_4

  需要用JAVA程序將該文件輸出到csv,期望的格式如下:

esProc_java_json_5

  集算器代碼:

1

=file(“d://data.json”).read().import@j()

2

=A1.People

3

=file(“D://result.csv”).export(A2;”,”)

  將json讀入內存,取出People字段,以逗號為分隔符寫入文件,其中A2如下:

esProc_java_json_7

  將多層json輸出為csv

  源json文件如下:

esProc_java_json_8

  期望在CSV中分兩列擺放,如下:

esProc_java_json_9

  難點在于root的字段名要和下級合并,下級字段名和字段值要各對應結果中的一列。集算器代碼:

1

=file(“d://source.json”).read().import@j()

2

=A1.fno().(pjoin([f=A1.field(~)].fname():key,f.array():value))

3

=A2.(~.record@i([A1.fname(#),null],1))

4

=A3.conj()

5

=file(“D://result.csv”).export(A4;”,”)

  讀入json文件,將數據按root數分為3組,如下(A2):

esProc_java_json_11

  之后將[root字段名,null]作為記錄插入各組第1條,再合并各組記錄,最后導出。Csv文件如下:

esProc_java_json_12

  動態json入庫

  s.json包含多層子文檔,其LIST子文檔和SERVICE子文檔的字段數不定,要求用JAVA將s.json導入庫表groups和service,規則是GROUPNAME的值和SERVICE的字段名對應數據庫表groups,SERVICE的每個字段對應庫表service,groups和service以groupsid相關聯。

  源數據如下:

esProc_java_json_13

  集算器代碼:

 

A

B

C

D

1

=file(“E://s.json”).read().import@j()

2

=create(Groupname,groupid)

3

=create(Serviceid,Servicename,groupid,Credit,Time,INFO,Network,Mobile,PRovider,
PIN,KBH,MEP,PRD,Type,Locks,Reference)

4

for A1.SUCCESS=A4.LIST  

5

 for B4.fno()=B4.field(B5)

6

  =C5.SERVICES

7

  for C6.fno()=C6.fname(C7) 

8

   =C6.field(C7) 

9

   =A2.record([C5.GROUPNAME,D7]) 

10

   =A3.record([D8.#1,D8.#2,D7,D8.#3,D8.#4,
D8.#5,D8.#6,D8.#7,D8.#8,D8.#9,
D8.#10,D8.#11,D8.#12,D8.#13,
D8.#14,D8.#15])
 

11

=mssql.update(A2,groups,Groupname,groupid;groupid)

12

=mssql.update(A3,services,Serviceid,Servicename,groupid,Credit,Time,INFO,Network,
Mobile,Provider,PIN,KBH,MEP,PRD,Type,Locks,Reference;Serviceid)

  保持結構讀入json文件,分別循環SUCCESS的每個子文檔(B4-D10)、List的每個字段(C5-D10)、Service的每個字段(D7-D10),將對應的記錄追加到空二維表A2、A3,最后入庫。代碼中用到了訪問二維表結構的幾個函數,其中fno可取得字段數,fname按序號取得字段名,field可按序號取得字段值。

  追加記錄后A2、A3分別如下:

esProc_java_json_15


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中国女警察一级毛片视频 | 久久成人免费网站 | 99在线啪 | 国产又粗又爽又深的免费视频 | 看免费一级毛片 | 一级做a爱片久久毛片a高清 | 黄色网战入口 | 国产精品刺激对白麻豆99 | 一本一本久久a久久精品综合小说 | bt 自拍 另类 综合 欧美 | 欧美十区 | 国产精品视频1区 | 亚洲国产精品一区二区精品 | 免费观看一级黄色片 | 精品国产乱码久久久久久久久 | 中国hdxxxx护士爽在线观看 | 中文字幕精品在线视频 | 玖草| 欧美一级片免费在线观看 | 欧美高清第一页 | 看免费黄色大片 | 亚洲精品久久久久久下一站 | 九色中文 | 看免费5xxaaa毛片 | 久久精品免费网站 | 涩涩屋av| 欧美女优一区 | 91精品国产777在线观看 | 欧美福利视频一区二区 | 石原莉奈日韩一区二区三区 | 在线观看国产一区二区 | 欧美韩国一区 | 亚洲综人网 | 久久99精品视频在线观看 | 国产呦在线观看视频 | 午夜视频中文字幕 | 久久久久久久久久久久久久国产 | 色网站免费观看 | 草久在线 | 免费国产视频在线观看 | 污黄视频在线播放 |