java如何簡(jiǎn)單快速處理 json 中的數(shù)據(jù),相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
成都創(chuàng)新互聯(lián):自2013年創(chuàng)立以來(lái)為各行業(yè)開(kāi)拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為上千余家公司企業(yè)提供了專業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站推廣服務(wù), 專業(yè)公司由設(shè)計(jì)師親自精心設(shè)計(jì),設(shè)計(jì)的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺(jué)效果,策劃師分析客戶的同行競(jìng)爭(zhēng)對(duì)手,根據(jù)客戶的實(shí)際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。JSONstr.json的runners字段是子文檔,子文檔有3個(gè)字段:horseId、ownerColours、trainer,其中trainer含有下級(jí)字段trainerId。需要根據(jù)文檔序號(hào)查詢對(duì)應(yīng)子文檔的horseId、ownerColours、trainerId字段。部分源數(shù)據(jù)如下:
[ { "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結(jié)構(gòu)化后的效果:
Java只提供了解析Json的基礎(chǔ)類庫(kù),但API接口多而繁瑣,如果想進(jìn)行深入的計(jì)算,仍然需要復(fù)雜硬編碼。大概要寫成這樣:
... 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會(huì)簡(jiǎn)單很多,它把Json類庫(kù)做了二次封裝,且有豐富強(qiáng)大的集合運(yùn)算能力,所以很容易應(yīng)對(duì)。比如上面問(wèn)題,取出第 1 個(gè) runners 字段 (子文檔),僅需3行:
A | |
1 | =json(file("/workspace/JSONstr.json").read()) |
2 | =A1(1).runners |
3 | =A2.new(horseId,trainer.trainerId:trainerId,ownerColours) |
Json 解析出來(lái)一般都是為了計(jì)算,所以 SPL 還能更方便地計(jì)算,比如:按 horseId 分組統(tǒng)計(jì)每組中 ownerColours 出現(xiàn)的次數(shù);只需在此基礎(chǔ)上增加 1 行:=A3.groups(horseId;~.array().count():times)。
看完上述內(nèi)容,你們掌握java如何簡(jiǎn)單快速處理 json 中的數(shù)據(jù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!