国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java— 讀取JSON文件的多種方式

這篇具有很好參考價值的文章主要介紹了java— 讀取JSON文件的多種方式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

大部分內(nèi)容參考自: https://blog.csdn.net/csdn_halon/article/details/120287992

在開發(fā)過程中有時會遇到需要讀取本地.json文件的需求,通常會自己寫Reader代碼去讀,但是這么做寫出來的代碼有些繁瑣(需要關(guān)流、創(chuàng)建StringBuilder對象等操作)。最近發(fā)現(xiàn)幾個小工具可以讓需求代碼變得更加簡潔。

準(zhǔn)備:

json文件:D:\test.json

{
    "ID": 10001,
    "detail": "detail",
    "json_format_version": 1.0,
    "other_info": {
        "array_one": [
            [855, 410],
            [854, 411],
            [847, 411],
            [846, 410],
            [845, 410],
            [844, 409]
        ],
        "array_two": [
            [832, 303],
            [829, 303],
            [828, 302],
            [825, 302],
            [824, 301]
        ],
        "array_three": [
            [1013, 224],
            [1012, 225],
            [1010, 225],
            [1009, 226],
            [1023, 224]
        ],
        "point": [853, 310],
        "boolean": true
    }
}

1.使用FileReader讀取json文件

1.1、添加依賴

    <dependencies>
        <dependency>
           <groupId>com.alibaba</groupId>
           <artifactId>fastjson</artifactId>
           <version>2.0.12</version>
        </dependency>
    </dependencies>

1.2源代碼

import com.alibaba.fastjson.JSON;
 
import java.io.*;
 
public class ReadLocalJsonFileDemo {
    publicstatic void main(String[] args) throws IOException {
        Filefile = new File("D:\\test.json");
       readerMethod(file);
 
    }
 
    privatestatic void readerMethod(File file) throws IOException {
       FileReader fileReader = new FileReader(file);
        Readerreader = new InputStreamReader(new FileInputStream(file), "Utf-8");
        int ch= 0;
       StringBuffer sb = new StringBuffer();
        while((ch = reader.read()) != -1) {
           sb.append((char) ch);
        }
       fileReader.close();
       reader.close();
        StringjsonStr = sb.toString();
       System.out.println(JSON.parseObject(jsonStr));
    }
}

1.3.控制臺輸出

{"other_info":{"array_two":[[832,303],[829,303],[828,302],[825,302],[824,301]],"array_three":[[1013,224],[1012,225],[1010,225],[1009,226],[1023,224]],"boolean":true,"array_one":[[855,410],[854,411],[847,411],[846,410],[845,410],[844,409]],"point":[853,310]},"ID":10001,"detail":"detail","json_format_version":1.0}

2.使用jacksonAPI讀取json文件

2.1、添加依賴

    <dependencies>
        <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-databind</artifactId>
           <version>2.13.3</version>
        </dependency>
    </dependencies>

2.2源代碼

import com.fasterxml.jackson.databind.ObjectMapper;
 
import java.io.File;
import java.io.IOException;
import java.util.Map;
 
public class ReadLocalJsonFileDemo {
    publicstatic void main(String[] args) throws IOException {
        Filefile = new File("D:\\test.json");
       jacksonMethod(file);
    }
 
    privatestatic void jacksonMethod(File file) throws IOException {
       ObjectMapper objectMapper = new ObjectMapper();
       System.out.println(objectMapper.readValue(file, Map.class));
    }
}

2.3.控制臺輸出

{ID=10001,detail=detail, json_format_version=1.0, other_info={array_one=[[855, 410],[854, 411], [847, 411], [846, 410], [845, 410], [844, 409]], array_two=[[832,303], [829, 303], [828, 302], [825, 302], [824, 301]], array_three=[[1013,224], [1012, 225], [1010, 225], [1009, 226], [1023, 224]], point=[853, 310],boolean=true}}

3.使用nio讀取json文件

3.1、添加依賴

    <dependencies>
        <dependency>
           <groupId>com.alibaba</groupId>
           <artifactId>fastjson</artifactId>
           <version>2.0.12</version>
        </dependency>
    </dependencies>

3.2源代碼

import com.alibaba.fastjson.JSONObject;
 
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
 
public class ReadLocalJsonFileDemo {
    publicstatic void main(String[] args) throws IOException {
        Filefile = new File("D:\\test.json");
       nioMethod(file);
    }
 
    privatestatic void nioMethod(File file) throws IOException {
        StringjsonString = new String(Files.readAllBytes(Paths.get(file.getPath())));
       System.out.println(JSONObject.parseObject(jsonString));
    }
}

3.3.控制臺輸出

{"other_info":{"array_two":[[832,303],[829,303],[828,302],[825,302],[824,301]],"array_three":[[1013,224],[1012,225],[1010,225],[1009,226],[1023,224]],"boolean":true,"array_one":[[855,410],[854,411],[847,411],[846,410],[845,410],[844,409]],"point":[853,310]},"ID":10001,"detail":"detail","json_format_version":1.0}文章來源地址http://www.zghlxwxcb.cn/news/detail-505746.html

到了這里,關(guān)于java— 讀取JSON文件的多種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 用Matlab實現(xiàn)車牌分割(可識別大部分藍(lán)色、綠色車牌)

    用Matlab實現(xiàn)車牌分割(可識別大部分藍(lán)色、綠色車牌)

    ? ? ? 最近學(xué)習(xí)了數(shù)字圖像處理的腐蝕、膨脹、閉運(yùn)算、開運(yùn)算等內(nèi)容,于是想進(jìn)行實踐。車牌分割是一個不錯的選擇,里面涉及到了很多知識點(diǎn)。 ? ? ? 這里先簡述一下車牌分割的思路和流程(這里以綠色車牌為例): 1.定位綠色車牌區(qū)域 2.車牌矯正(如果圖像中車牌是傾

    2024年02月12日
    瀏覽(24)
  • 1200 + AI工具大收錄,58個分類,支持大部分行業(yè)

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言 一、使用步驟 總結(jié) 隨著人工智能技術(shù)的不斷發(fā)展,越來越多的AI工具涌現(xiàn)出來,它們在各個領(lǐng)域中得到了廣泛的應(yīng)用。除了常用的文本、圖片、視頻AI工具,還有普通辦公、設(shè)計、編程、

    2024年02月16日
    瀏覽(48)
  • 低代碼產(chǎn)品如何分類,大部分人都沒有搞清楚

    低代碼產(chǎn)品如何分類,大部分人都沒有搞清楚

    最近許多技術(shù)峰會都出現(xiàn)了低代碼這個名詞,可以說,低代碼是中臺之后,又一個熱門話題和名詞了。 低代碼平臺是 無需編碼或通過少量代碼 就可以快速生成應(yīng)用程序的開發(fā)平臺。也是一款圖形化、拖拉拽方式快速實現(xiàn)企業(yè)數(shù)字化轉(zhuǎn)型中的創(chuàng)新應(yīng)用、支持用少量代碼擴(kuò)展實

    2023年04月20日
    瀏覽(93)
  • 安全清理大部分的C盤內(nèi)存(一般10GB以上)

    安全清理大部分的C盤內(nèi)存(一般10GB以上)

    ?如果感覺有用請 關(guān)注,點(diǎn)贊,收藏!? 下次分享更有用的干貨~ 歡迎轉(zhuǎn)載,請注明出處! 用360清理發(fā)現(xiàn), windows search日志 占用了70多個G空間,先清除!? ? 該日志文件有撒用呢?? 如果沒有這個日志文件,我們在文件系統(tǒng)進(jìn)行搜索的時候就會比較慢了,而且還會出現(xiàn)這樣的

    2023年04月15日
    瀏覽(88)
  • MySQL 字段為 NULL 的5大坑,大部分人踩過

    MySQL 字段為 NULL 的5大坑,大部分人踩過

    在驗證問題之前,我們先建一張測試表及測試數(shù)據(jù)。 ? 構(gòu)建的測試數(shù)據(jù),如下圖所示: ? 有了上面的表及數(shù)據(jù)之后,我們就來看當(dāng)列中存在 NULL 值時,究竟會導(dǎo)致哪些問題? 我們都知道, count 是用來計數(shù)的,當(dāng)表中某個字段存在 NULL 值時,就會造成 count 計算出來的數(shù)據(jù)丟

    2024年02月05日
    瀏覽(21)
  • CTF Misc(2)內(nèi)存取證基礎(chǔ)以及原理,覆蓋了大部分題型

    CTF Misc(2)內(nèi)存取證基礎(chǔ)以及原理,覆蓋了大部分題型

    內(nèi)存取證在ctf比賽中也是常見的題目,內(nèi)存取證是指在計算機(jī)系統(tǒng)的內(nèi)存中進(jìn)行取證分析,以獲取有關(guān)計算機(jī)系統(tǒng)當(dāng)前狀態(tài)的信息。內(nèi)存取證通常用于分析計算機(jī)系統(tǒng)上運(yùn)行的進(jìn)程、網(wǎng)絡(luò)連接、文件、注冊表等信息,并可以用于檢測和分析惡意軟件、網(wǎng)絡(luò)攻擊和其他安全事件

    2024年02月12日
    瀏覽(20)
  • windows11(win10大部分通用)系統(tǒng)C盤清理 | 深度優(yōu)化

    windows11(win10大部分通用)系統(tǒng)C盤清理 | 深度優(yōu)化

    前言 :首先對于計算機(jī)來說,Windows操作系統(tǒng)一般是安裝在磁盤驅(qū)動器的C盤中,運(yùn)行時會產(chǎn)生許多 ?垃圾文件? ,C盤空間在一定程度上會越來越小。而把它作為生產(chǎn)力工具的我們,時間越久,C盤常常會提示顯示其內(nèi)存已不足。C盤容量不足將會極大 ?影響系統(tǒng)的運(yùn)行速度? ,

    2024年02月05日
    瀏覽(20)
  • 校園綜合服務(wù)平臺V3.9.2 源碼修復(fù)大部分已知BUG

    校園綜合服務(wù)平臺V3.9.2 源碼修復(fù)大部分已知BUG

    校園綜合服務(wù)平臺,版本更新至V3.9.1 ?,源碼功能強(qiáng)大,ui 精美, 功能包含但不限于校園跑腿,外賣,組局,圈子,商城,抽獎,投票,團(tuán)購,二手市場,簽到,積分商城,一元購等!即刻源碼持續(xù)更新

    2024年04月26日
    瀏覽(99)
  • 面試官:synchronized 能不能禁止指令重排序?大部分人都會答錯!

    面試官:synchronized 能不能禁止指令重排序?大部分人都會答錯!

    首先一定要明確:指令重排序和有序性是不一樣的。這一點(diǎn)非常重要。 我們經(jīng)常都會這么說: volatile能保證內(nèi)存可見性、禁止指令重排序但是不能保證原子性。 synchronized能保證原子性、可見性和有序性。 注意:這里的有序性并不是代表能禁止指令重排序。 舉個例子: 在雙

    2024年02月11日
    瀏覽(21)
  • 數(shù)學(xué)建模美賽E、F題備考策略(自用,大部分復(fù)制粘貼)

    數(shù)學(xué)建模美賽E、F題備考策略(自用,大部分復(fù)制粘貼)

    這里要講一下故事的背景,我們小組三個人都是大一大二的學(xué)生,我的隊友們都是數(shù)學(xué)專業(yè)的學(xué)生,所以比賽中的編程部分就交給了我這樣的工業(yè)工程系的選手。我們在看完了歷年賽題后一直認(rèn)為:前面的幾題我們都很難建立出很棒的模型,因此我們將目光對準(zhǔn)E、F兩題,希

    2024年01月17日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包