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

Java如何快速讀取&解析JSON數(shù)據(jù)(文件),獲取想要的內(nèi)容?

這篇具有很好參考價值的文章主要介紹了Java如何快速讀取&解析JSON數(shù)據(jù)(文件),獲取想要的內(nèi)容?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

手打不易,如果轉(zhuǎn)摘,請注明出處!

注明原文:https://zhangxiaofan.blog.csdn.net/article/details/132764186


目錄

前言

準備工作

Json數(shù)據(jù)(示例)

解析Json文件

第一步:創(chuàng)建一個空類

第二步:使用?Gsonformat 插件

?第三步:復制Json內(nèi)容,創(chuàng)建對應類

第四步:讀取Json文件,提取目標數(shù)據(jù)

總結


前言

工作做,有時候會碰到一些復雜的Json格式數(shù)據(jù)(復雜的數(shù)據(jù)一般都是json.file文件),大部分字段可能對我們沒有用,因此我們需要去主動格式化,只提取或者過濾我們想要的數(shù)據(jù)。

準備工作

開發(fā)工具:intellij idea

插件:Gsonformat

下載地址如下:

Gsonformat - IntelliJ IDEs Plugin | Marketplace

直接在idea,通過 Plugins 安裝即可。

maven 依賴

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>

Json數(shù)據(jù)(示例)

Json文件數(shù)據(jù)示例:

文件路徑

src/main/resources/jsonfile/test.json

java 讀取json文件解析,json

文件名: test.json

文件內(nèi)容

{
  "code": 200,
  "msg": "成功",
  "data": [
    {
      "id": 1,
      "version": "2",
      "schoolList": [
        {
          "id": 1,
          "name": "嶺南一中",
          "studentList": [
            {
              "name": "zhangxiaofan",
              "age": 15
            },
            {
              "name": "wangwu",
              "age": 16
            }
          ]
        },
        {
          "id": 2,
          "name": "實驗中學",
          "studentList": [
            {
              "name": "lisi",
              "age": 16
            },
            {
              "name": "zhaoliu",
              "age": 15
            }
          ]
        }
      ],
      "flag": true
    }
  ]
}

解析Json文件

第一步:創(chuàng)建一個空類

public class MyJsonObject {
    
    
}

第二步:使用?Gsonformat 插件

空白處點擊右鍵,選擇 Generator ,然后選擇?

java 讀取json文件解析,json

?第三步:復制Json內(nèi)容,創(chuàng)建對應類

java 讀取json文件解析,json

注意:我們不需要把整個Json內(nèi)容復制進去,數(shù)據(jù)量很大的情況下,會卡死。

例如:我們要解析的Json格式含有很多List對象,那么我們只需拷貝List中的一個單元數(shù)據(jù)(Object)即可,因為格式是固定的。例如我們只需拷貝下面的內(nèi)容來創(chuàng)建bean就行。

{
    "code": 200,
    "msg": "成功",
    "data": [{
        "id": 1,
        "version": "2",
        "schoolList": [{
            "id": 1,
            "name": "嶺南一中",
            "studentList": [{
                "name": "zhangxiaofan",
                "age": 15
            }]
        }],
        "flag": true
    }]
}

點擊確定后,會自動幫我們創(chuàng)建好對應的POJO類

@NoArgsConstructor
@Data
public class MyJsonObject {


    /**
     * code : 200
     * msg : 成功
     * data : [{"id":1,"version":"2","schoolList":[{"id":1,"name":"嶺南一中","studentList":[{"name":"zhangxiaofan","age":15}]}],"flag":true}]
     */

    private int code;
    private String msg;
    private List<DataBean> data;

    @NoArgsConstructor
    @Data
    public static class DataBean {
        /**
         * id : 1
         * version : 2
         * schoolList : [{"id":1,"name":"嶺南一中","studentList":[{"name":"zhangxiaofan","age":15}]}]
         * flag : true
         */

        private int id;
        private String version;
        private boolean flag;
        private List<SchoolListBean> schoolList;

        @NoArgsConstructor
        @Data
        public static class SchoolListBean {
            /**
             * id : 1
             * name : 嶺南一中
             * studentList : [{"name":"zhangxiaofan","age":15}]
             */

            private int id;
            private String name;
            private List<StudentListBean> studentList;

            @NoArgsConstructor
            @Data
            public static class StudentListBean {
                /**
                 * name : zhangxiaofan
                 * age : 15
                 */

                private String name;
                private int age;
            }
        }
    }
}

第四步:讀取Json文件,提取目標數(shù)據(jù)

假設我們想知道每個學校,有哪些學生(姓名)。

import com.alibaba.fastjson.JSONObject;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Test {

    public static final String JSON_PATH = "E:\\JavaProject\\local\\JavaCoreTest\\src\\main\\resources\\jsonfile\\test.json";

    public static void main(String[] args) throws IOException {
        Set<String> url = new HashSet<>();
        List<String> urlArray = new ArrayList<>();
        File file = new File(JSON_PATH);
        String content = FileUtils.readFileToString(file, "UTF-8");
        MyJsonObject myJsonObject = JSONObject.parseObject(content, MyJsonObject.class);
        // 數(shù)據(jù)
        List<MyJsonObject.DataBean> data = myJsonObject.getData();
        for (MyJsonObject.DataBean dataBean : data) {
            for (MyJsonObject.DataBean.SchoolListBean school : dataBean.getSchoolList()) {
                // 學校名
                String schoolName = school.getName();
                for (MyJsonObject.DataBean.SchoolListBean.StudentListBean student : school.getStudentList()) {
                    // 學生姓名
                    String studentName = student.getName();
                    System.out.println("學校:" + schoolName + ",有學生:" + studentName);
                }

            }
        }
    }
}

執(zhí)行結果:

Connected to the target VM, address: '127.0.0.1:35240', transport: 'socket'
學校:嶺南一中,有學生:zhangxiaofan
學校:嶺南一中,有學生:wangwu
學校:實驗中學,有學生:lisi
學校:實驗中學,有學生:zhaoliu

總結

按照上面的方法,我們可以快速的提取復雜的Json文件,快速獲取我們想要的內(nèi)容!

如果文件特別大,可以考慮多線程的方式處理。文章來源地址http://www.zghlxwxcb.cn/news/detail-752354.html

到了這里,關于Java如何快速讀取&解析JSON數(shù)據(jù)(文件),獲取想要的內(nèi)容?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • PLC從HTTP服務端獲取JSON文件,解析數(shù)據(jù)到寄存器

    PLC從HTTP服務端獲取JSON文件,解析數(shù)據(jù)到寄存器

    ? ? ? ?智能網(wǎng)關IGT-DSER集成了多種PLC協(xié)議,方便實現(xiàn)各種PLC與HTTP服務端之間通訊。通過網(wǎng)關的參數(shù)配置軟件綁定JSON文件的字段與PLC寄存器地址,配置URL,即可采用POST命令,將JSON文件提交給HTTP的服務端; 服務端有返回的JSON,或者GET命令獲取到的JSON,網(wǎng)關進行解析后將數(shù)據(jù)

    2024年01月23日
    瀏覽(19)
  • 如何使用 Java 將 JSON 文件讀取為字符串?這三種方法很管用!

    如何使用 Java 將 JSON 文件讀取為字符串?這三種方法很管用!

    JSON (JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,它可以用來存儲和傳輸結構化的數(shù)據(jù)。在 Java 中,有多種方法可以將 JSON 文件讀取為字符串,本文將介紹其中的幾種。 java.io 包中提供了一些類,如 FileReader、BufferedReader、InputStreamReader 等,可以用來讀取文件的內(nèi)容。

    2024年02月01日
    瀏覽(23)
  • python 讀取文件, 轉(zhuǎn)化為 json 格式, 獲取 json 中某個屬性的值

    有以下文件 info.txt , 想要讀取其中的 fileVideoId, 組成一個列表后返回. 運行結果:

    2024年02月09日
    瀏覽(22)
  • java獲取到heapdump文件后,如何快速分析?

    java獲取到heapdump文件后,如何快速分析?

    原創(chuàng):扣釘日記(微信公眾號ID:codelogs),歡迎分享,非公眾號轉(zhuǎn)載保留此聲明。 在之前的OOM問題復盤之后,本周,又一Java服務出現(xiàn)了內(nèi)存問題,這次問題不嚴重,只會觸發(fā)堆內(nèi)存占用高報警,沒有觸發(fā)OOM,但好在之前的復盤中總結了dump腳本,會在堆占用高時自動執(zhí)行js

    2023年04月21日
    瀏覽(13)
  • 遞歸解析Json,實現(xiàn)生成可視化Tree+快速獲取JsonPath

    內(nèi)部平臺的一個小功能點的實現(xiàn)過程,分享給大家: 遞歸解析Json,可以實現(xiàn)生成可視化Tree+快速獲取JsonPath 。 步驟: 1.利用JsonPath讀取根,獲取JsonObject 2.遞歸層次遍歷JsonObjec,保存結點信息 3.利用zTree展示結點為可視化樹,點擊對應樹的結點即可獲取對應結點的JsonPath 示例

    2024年02月08日
    瀏覽(21)
  • .NET學習筆記----關于.NET Core那些事(3)【配置文件的讀取、json文件的通用解析、讀取靜態(tài)文件】

    .NET學習筆記----關于.NET Core那些事(3)【配置文件的讀取、json文件的通用解析、讀取靜態(tài)文件】

    appsettings.json準備 控制器中讀取json 定義與配置文件中需要獲取的標簽結構完全一致的實體類:IConfiguration .Bind() ----反序列化 要讀取的json字符串 定義的實體類 讀取json 用到的json字符串 == 用到的類 Startup.cs中的配置 控制器中的代碼 運行結果 當我們用《關于.NET Core那些事(2)》

    2024年02月04日
    瀏覽(22)
  • 【Unity】C# 創(chuàng)建/讀取/解析JSON數(shù)據(jù)

    判斷是否存在JSON數(shù)據(jù)文件沒有則創(chuàng)建并保存

    2024年02月16日
    瀏覽(17)
  • Python中如何快速解析JSON對象數(shù)組

    由于瀏覽器可以迅速地解析JSON對象,它們有助于在客戶端和服務器之間傳輸數(shù)據(jù)。本文將描述如何使用Python的JSON模塊來傳輸和接收JSON數(shù)據(jù)。 JSON (JavaScript Object Notation)是一種用于數(shù)據(jù)交換的語法,它對人的讀寫很簡單,對計算機的解析和生產(chǎn)也很簡單,而且還可以存儲數(shù)據(jù)。

    2024年02月10日
    瀏覽(18)
  • java— 讀取JSON文件的多種方式

    大部分內(nèi)容參考自: https://blog.csdn.net/csdn_halon/article/details/120287992 在開發(fā)過程中有時會遇到需要讀取本地.json文件的需求,通常會自己寫Reader代碼去讀,但是這么做寫出來的代碼有些繁瑣(需要關流、創(chuàng)建StringBuilder對象等操作)。最近發(fā)現(xiàn)幾個小工具可以讓需求代碼變得更加

    2024年02月11日
    瀏覽(25)
  • VUE3如何讀取本地json文件

    首先需要安裝axios npm install axios --save 然后在main.js引用axios 然后就可以使用$axios了,可是vue3沒有this,所以需要用getCurrentInstance() 獲取當前組件實例。 在app.vue里使用get請求數(shù)據(jù) 當然,VUE3也可以直接讀取本地json文件

    2024年02月13日
    瀏覽(100)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包