java 如何簡單快速處理 json 中的資料
JSONstr.json的runners欄位是子文件,子文件有3個欄位:horseId、ownerColours、trainer,其中trainer含有下級欄位trainerId。需要根據文件序號查詢對應子文件的horseId、ownerColours、trainerId欄位。部分源資料如下:
[ { "race": { "raceId":"1.33.1141109.2", "meetingId":"1.33.1141109" }, ... "numberOfRunners": 2, "runners": [ { "horseId":"1.00387464", "trainer": { "trainerId":"1.00034060" }, "ownerColours":"Maroon,pink sleeves,dark blue cap." }, { "horseId":"1.00373620", "trainer": { "trainerId":"1.00010997" }, "ownerColours":"Black,emerald green cross of lorraine,striped sleeves." } ] }, ... ] |
期望Json結構化後的效果:
Java只提供瞭解析Json的基礎類庫,但API介面多而繁瑣,如果想進行深入的計算,仍然需要複雜硬編碼。大概要寫成這樣:
... JSONObject jsonObject = JSONObject.fromObject(s); JSONArray result = jsonObject.getJSONArray("runners"); for (int i = 0; i < result.size(); i++) { JSONArray index = result.getJSONObject(i).getJSONArray("index"); ... } ... |
Json解析,用集算器SPL會簡單很多,它把Json類庫做了二次封裝,且有豐富強大的集合運算能力,所以很容易應對。比如上面問題,取出第 1 個 runners 欄位 (子文件),僅需3行:
|
A |
1 |
=json(file("/workspace/JSONstr.json").read()) |
2 |
=A1(1).runners |
3 |
=A2.new(horseId,trainer.trainerId:trainerId,ownerColours) |
Json 解析出來一般都是為了計算,所以 SPL 還能更方便地計算,比如:按 horseId 分組統計每組中 ownerColours 出現的次數;只需在此基礎上增加 1 行:=A3.groups(horseId;~.array().count():times)。其實還有很多情況用Java解析Json不太方便,甚至計算入庫等需求,但用集算器SPL卻很簡單,感興趣可以參考: 。
集算器還很容易嵌入到Java應用程式中, 有使用和獲得它的方法。
關於集算器安裝使用、獲得免費授權和相關技術資料,可以參見 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2700773/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java 如何簡單快速處理 xml 中的資料JavaXML
- C#中處理JSON資料的方式C#JSON
- 處理json格式的資料JSON
- flutter json資料處理FlutterJSON
- Hive處理Json資料HiveJSON
- spark處理json資料DemoSparkJSON
- Java的簡單理解(22)---處理流Java
- java大資料處理:如何使用Java技術實現高效的大資料處理Java大資料
- JSON to Insights:快速而簡單JSON
- 使用Java處理JSON結構化資料 -Advanced Web MachineryJavaJSONWebMac
- Python資料處理(一):處理 JSON、XML、CSV 三種格式資料PythonJSONXML
- EXCEL的重生!處理百萬行資料竟如此簡單Excel
- 簡單的字串處理字串
- JSON簡介(java中的json庫使用)JSONJava
- Java8 Stream,簡潔快速處理集合(上)Java
- Java8 Stream,簡潔快速處理集合(下)Java
- 一個簡單易用的資料庫壞塊處理方案資料庫
- 簡述高併發解決思路-如何處理海量資料(中)
- 如何快速簡單的實現 Excel資料按列提取Excel
- C++實現對Json資料的友好處理C++JSON
- flutter json_annotation和json_serializable處理json資料序列化FlutterJSON
- Rust中錯誤處理的最簡單指南Rust
- 基於json資料格式實現的簡單資料庫——jsonDBJSON資料庫
- JAVA簡單的複習資料Java
- 將物件解析為JSON資料和將JSON資料解析為物件的簡單例項物件JSON單例
- Java基礎-處理json字串解析案例JavaJSON字串
- 使用jsonpath快速提取json的資料JSON
- Python處理JSONPythonJSON
- 簡單介紹Python中異常處理用法Python
- 使用Java預處理實現JSON插入PostgreSQLJavaJSONSQL
- TensorFlow進行簡單的影像處理
- android簡單的圖形特效處理Android特效
- 基於Opencv的簡單影像處理OpenCV
- 如何處理Oracle資料庫中的壞塊問題(轉)Oracle資料庫
- 簡單實現批處理
- 如何在Tensorflow.js中處理MNIST影象資料JS
- 第四章 Caché JSON 處理資料型別JSON資料型別
- Java XML和JSON:Java SE的文件處理,第1部分JavaXMLJSON