Maison > Java > javaDidacticiel > le corps du texte

Comment SpringBoot lit-il les fichiers JSON dans le répertoire des ressources ?

王林
Libérer: 2023-05-16 13:25:16
avant
3044 Les gens l'ont consulté

Idée

Utilisez ResourceUtils de Spring pour lire le fichier json dans le répertoire des ressources.

Utilisez common-io pour convertir le fichier lu en chaîne json.

Utilisez fastjson pour désérialiser les chaînes json en objets.

Exemple

Comment SpringBoot lit-il les fichiers JSON dans le répertoire des ressources ?

1. Dépendance Maven

pom.xml, principalement l'introduction de common-io et 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>
Copier après la connexion

2.json fichier de ressources

notice.json, répertoriez simplement le contenu json à utiliser.

[
  {
    "title": "新功能xxx上线",
    "content": "支持xxx"
  },
  {
    "title": "旧功能xxx下线",
    "content": "不支持xxx"
  }
]
Copier après la connexion

3. Lire le service json

3.1. Définir l'interface

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;
}
Copier après la connexion

3.2. Implémenter l'interface

Cela peut être considéré comme la partie centrale de cet article. Pour plus de détails, vous pouvez voir l'implémentation dans le code et. lire notice.json via ResourceUtils Ce fichier json est converti en chaîne json via FileUtils de common-io, et l'objet json est désérialisé via le JSON de 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;
    }
}
Copier après la connexion

4. Interface de test

Écrivez un test d'intégration simple, injectez le service écrit ci-dessus, exécutez la méthode et imprimez les résultats de l'exécution.

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());
    }
}
Copier après la connexion

Comment SpringBoot lit-il les fichiers JSON dans le répertoire des ressources ?

Vous pouvez voir que le contenu du fichier json peut être affiché normalement, indiquant que notre programme est correct.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal