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.
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>
notice.json, cuma senaraikan kandungan json.
[ { "title": "新功能xxx上线", "content": "支持xxx" }, { "title": "旧功能xxx下线", "content": "不支持xxx" } ]
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; } }
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()); } }
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!