Rumah >Java >javaTutorial >Bagaimanakah SpringBoot membaca fail JSON dalam direktori sumber?

Bagaimanakah SpringBoot membaca fail JSON dalam direktori sumber?

王林
王林ke hadapan
2023-05-16 13:25:163184semak imbas

Idea

Gunakan Spring's ResourceUtils untuk membaca fail json dalam direktori sumber.

Gunakan common-io untuk menukar fail baca kepada rentetan json.

Gunakan fastjson untuk menyahsiri rentetan json menjadi objek.

Contoh

Bagaimanakah SpringBoot membaca fail JSON dalam direktori sumber?

1 Maven bergantung pada

pom.xml, terutamanya pengenalan common-io dan fastjson.

<!-- 资源目录资源文件读取 -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>

        <!-- 反序列化json字符串 -->
        <dependency>
            <groupId>com.alibaba.fastjson2</groupId>
            <artifactId>fastjson2</artifactId>
            <version>2.0.14</version>
        </dependency>

Fail sumber 2.json

notice.json, cuma senaraikan kandungan json.

[
  {
    "title": "新功能xxx上线",
    "content": "支持xxx"
  },
  {
    "title": "旧功能xxx下线",
    "content": "不支持xxx"
  }
]

3. Baca Perkhidmatan json

3.1. Tentukan antara muka

package com.example.springbootjson.service;

import com.example.springbootjson.domain.NoticeInfo;

import java.io.IOException;
import java.util.List;

/**
 * @author hongcunlin
 */
public interface NoticeService {
    /**
     * 获取公告
     *
     * @return 公告
     * @throws IOException 文件
     */
    List<NoticeInfo> getNoticeInfoList() throws IOException;
}

3.2 Laksanakan antara muka

Ini boleh dikatakan sebagai bahagian teras daripada artikel ini, anda boleh melihat pelaksanaan dalam kod untuk butiran, membaca fail json notice.json melalui ResourceUtils, menukar fail itu menjadi rentetan json melalui FileUtils common-io dan menyahsiri objek json melalui JSON fastjson.

package com.example.springbootjson.service.impl;

import com.alibaba.fastjson2.JSON;
import com.example.springbootjson.domain.NoticeInfo;
import com.example.springbootjson.service.NoticeService;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.ResourceUtils;

import java.io.File;
import java.io.IOException;
import java.util.List;

/**
 * @author hongcunlin
 */
@Service
public class NoticeServiceImpl implements NoticeService {

    @Override
    public List<NoticeInfo> getNoticeInfoList() throws IOException {
        File file = ResourceUtils.getFile("classpath:notice.json");
        String json = FileUtils.readFileToString(file, "UTF-8");
        List<NoticeInfo> noticeInfoList = JSON.parseArray(json, NoticeInfo.class);
        return noticeInfoList;
    }
}

4. Antara muka ujian

Tulis ujian penyepaduan mudah, suntikan Perkhidmatan yang ditulis di atas, laksanakan kaedah dan cetak hasil pelaksanaan.

package com.example.springbootjson;

import com.example.springbootjson.service.NoticeService;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import javax.annotation.Resource;
import java.io.IOException;

@SpringBootTest
class SpringbootJsonApplicationTests {
    @Resource
    private NoticeService noticeService;

    @Test
    void contextLoads() throws IOException {
        System.out.println(noticeService.getNoticeInfoList());
    }
}

Bagaimanakah SpringBoot membaca fail JSON dalam direktori sumber?

Seperti yang anda lihat, kandungan dalam fail json boleh dikeluarkan secara normal, menunjukkan bahawa program kami adalah betul.

Atas ialah kandungan terperinci Bagaimanakah SpringBoot membaca fail JSON dalam direktori sumber?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam