Heim > Java > javaLernprogramm > Wie liest SpringBoot JSON-Dateien im Ressourcenverzeichnis?

Wie liest SpringBoot JSON-Dateien im Ressourcenverzeichnis?

王林
Freigeben: 2023-05-16 13:25:16
nach vorne
3109 Leute haben es durchsucht

Idee

Verwenden Sie Springs ResourceUtils, um die JSON-Datei im Ressourcenverzeichnis zu lesen.

Verwenden Sie common-io, um die gelesene Datei in einen JSON-String zu konvertieren.

Verwenden Sie fastjson, um JSON-Strings in Objekte zu deserialisieren.

Beispiel

Wie liest SpringBoot JSON-Dateien im Ressourcenverzeichnis?

1.Maven-Abhängigkeit

pom.xml, hauptsächlich common-io , die Einführung von 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>
Nach dem Login kopieren

2.json-Ressourcendatei

notice.json, listen Sie einfach den zu verwendenden JSON-Inhalt auf.

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

3. JSON-Service

3.1 definieren. Schnittstelle

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;
}
Nach dem Login kopieren

hier implementieren Man kann sagen, dass es sich um den Kernteil dieses Artikels handelt. Weitere Informationen finden Sie im Code. Die JSON-Datei „notice.json“ wird über ResourceUtils gelesen und die Datei wird über „FileUtils“ von common-io in eine JSON-Zeichenfolge konvertiert. und das JSON-Objekt wird über den JSON von fastjson deserialisiert.

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;
    }
}
Nach dem Login kopieren

4. Testschnittstelle

Schreiben Sie einen einfachen Integrationstest, injizieren Sie den oben beschriebenen Dienst, führen Sie die Methode aus und drucken Sie die Ausführungsergebnisse aus.

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());
    }
}
Nach dem Login kopieren

Wie liest SpringBoot JSON-Dateien im Ressourcenverzeichnis?Sie können sehen, dass der Inhalt in der JSON-Datei normal ausgegeben werden kann, was darauf hinweist, dass unser Programm korrekt ist.

Das obige ist der detaillierte Inhalt vonWie liest SpringBoot JSON-Dateien im Ressourcenverzeichnis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage