当前位置:   article > 正文

SpringBoot——如何读写使用JSON文件保存的数据_springboot读取json文件

springboot读取json文件

1. 将数据写入JSON文件

要将数据写入JSON文件,可以使用Spring Boot中提供的Jackson库。Jackson库是处理JSON的Java库,可以轻松地将对象转换为JSON字符串,并将其写入文件。

首先,确保你的Spring Boot项目中已经引入了Jackson库的依赖。在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

接下来,创建一个包含数据的Java对象。这个对象将被转换为JSON格式并写入文件。假设你有一个Person类,表示一个人的信息:

public class Person {
    private String name;
    private int age;
    
    // 构造函数、getter和setter等方法
    
    // 省略其他代码
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

现在,可以使用ObjectMapper类将对象转换为JSON字符串,并将其写入文件。

示例代码:

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;

public class JsonFileWriter {
    public void writeJsonToFile(Person person) {
        ObjectMapper objectMapper = new ObjectMapper();
        
        try {
            objectMapper.writeValue(new File("person.json"), person);
            System.out.println("JSON文件写入成功!");
        } catch (IOException e) {
            System.out.println("JSON文件写入失败:" + e.getMessage());
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在上面的示例中,ObjectMapper类的writeValue()方法接受两个参数:文件对象和要写入文件的对象。在这个例子中,我们将person对象写入名为person.json的文件中。

调用writeJsonToFile()方法将触发写入操作:

Person person = new Person();
person.setName("Alice");
person.setAge(25);

JsonFileWriter jsonFileWriter = new JsonFileWriter();
jsonFileWriter.writeJsonToFile(person);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

执行上述代码后,会在项目根目录下生成一个名为person.json的文件,内容如下:

{"name":"Alice","age":25}
  • 1

这就是将数据写入JSON文件的简单示例。可以根据自己的需要进行扩展和调整。

2. 从JSON文件读取数据

2.1 读取单个对象

可以使用ObjectMapper类来读取JSON文件并将其转换为Java对象。

示例代码:

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;

public class JsonFileReader {
    public Person readJsonFromFile() {
        ObjectMapper objectMapper = new ObjectMapper();
        
        try {
            Person person = objectMapper.readValue(new File("person.json"), Person.class);
            System.out.println("JSON文件读取成功!");
            return person;
        } catch (IOException e) {
            System.out.println("JSON文件读取失败:" + e.getMessage());
            return null;
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

在上述示例中,ObjectMapper类的readValue()方法接受两个参数:文件对象和要将JSON数据转换为的对象类型。在这个例子中,我们将JSON文件person.json读取并将其转换为Person对象。

调用readJsonFromFile()方法将触发读取操作:

JsonFileReader jsonFileReader = new JsonFileReader();
Person person = jsonFileReader.readJsonFromFile();

if (person != null) {
    System.out.println("姓名:" + person.getName());
    System.out.println("年龄:" + person.getAge());
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

执行上述代码后,将从person.json文件中读取数据并将其打印到控制台:

姓名:Alice
年龄:25
  • 1
  • 2

2.2 读取对象列表

假设你有一个JSON文件名为data.json,其中包含了一个对象列表,如下所示:

[
  {"name": "Alice", "age": 25},
  {"name": "Bob", "age": 30},
  {"name": "Charlie", "age": 35}
]
  • 1
  • 2
  • 3
  • 4
  • 5

可以使用ObjectMapper类来读取JSON文件并将其转换为对象列表。

示例代码:

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.util.List;

public class JsonFileReader {
    public List<Person> readJsonFromFile() {
        ObjectMapper objectMapper = new ObjectMapper();

        try {
            File file = new File("data.json");
            List<Person> personList = objectMapper.readValue(file, new TypeReference<List<Person>>() {});
            System.out.println("JSON文件读取成功!");
            return personList;
        } catch (IOException e) {
            System.out.println("JSON文件读取失败:" + e.getMessage());
            return null;
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

在上述示例中,ObjectMapper类的readValue()方法接受两个参数:JSON文件对象和一个TypeReference对象,用于指定要转换的对象类型。在这个例子中,我们将JSON文件转换为List<Person>对象。

调用readJsonFromFile()方法将触发读取操作:

JsonFileReader jsonFileReader = new JsonFileReader();
List<Person> personList = jsonFileReader.readJsonFromFile();

if (personList != null) {
    for (Person person : personList) {
        System.out.println("姓名:" + person.getName());
        System.out.println("年龄:" + person.getAge());
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

执行上述代码后,将从data.json文件中读取列表数据,并将每个人的姓名和年龄打印到控制台。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/595966
推荐阅读
相关标签
  

闽ICP备14008679号