Gson库从json文件读取对象和将对象写入json文件操作
时间: 2024-02-24 10:56:36 浏览: 21
Gson是一个用于将Java对象转换为JSON和JSON转换为Java对象的库。以下是从JSON文件读取对象和将对象写入JSON文件的操作:
从JSON文件读取对象:
1. 创建一个Gson对象。
```
Gson gson = new Gson();
```
2. 使用Gson对象的fromJson()方法将JSON文件中的数据转换为Java对象。
```
try (Reader reader = new FileReader("path/to/json/file.json")) {
MyObject myObject = gson.fromJson(reader, MyObject.class);
}
```
将对象写入JSON文件:
1. 创建一个Gson对象。
```
Gson gson = new Gson();
```
2. 使用Gson对象的toJson()方法将Java对象转换为JSON格式的字符串。
```
MyObject myObject = new MyObject();
String json = gson.toJson(myObject);
```
3. 将JSON字符串写入文件。
```
try (FileWriter writer = new FileWriter("path/to/json/file.json")) {
gson.toJson(myObject, writer);
}
```
相关问题
java json写入本地文件_Json读写本地文件实现代码
下面是Java中使用Gson库实现Json读写本地文件的示例代码:
```java
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.*;
public class JsonFileHandler {
private static final String FILENAME = "data.json"; // 定义文件名
public static void writeToJsonFile(Object object) {
try {
Gson gson = new Gson();
String json = gson.toJson(object);
FileWriter writer = new FileWriter(FILENAME);
writer.write(json);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static <T> T readFromJsonFile(TypeToken<T> typeToken) {
T object = null;
try {
Gson gson = new Gson();
BufferedReader reader = new BufferedReader(new FileReader(FILENAME));
object = gson.fromJson(reader, typeToken.getType());
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
return object;
}
}
```
在上述代码中,我们使用了Gson库来实现Json的序列化和反序列化,其中`writeToJsonFile`方法可以将一个Java对象写入到本地的Json文件中,`readFromJsonFile`方法可以从本地的Json文件中读取出一个Java对象。
示例用法:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Person> persons = new ArrayList<>();
persons.add(new Person("Alice", 18));
persons.add(new Person("Bob", 20));
JsonFileHandler.writeToJsonFile(persons); // 将对象写入到本地Json文件中
List<Person> readPersons = JsonFileHandler.readFromJsonFile(new TypeToken<List<Person>>(){}); // 从本地Json文件中读取对象
System.out.println(readPersons);
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
运行结果:
```
[Person{name='Alice', age=18}, Person{name='Bob', age=20}]
```
用java 从1GB的文本文件读取JSON内容,转成JSONObject对象,,然后在写入D:\1.txt里
在 Java 中读取一个 1GB 的文本文件并将其转换为 JSONObject 对象的步骤如下:
1. 建立一个文件输入流,读取文本文件。
InputStream inputStream = new FileInputStream("文件路径");
2. 将输入流转换为字符流。
Reader reader = new InputStreamReader(inputStream);
3. 使用 JSON 解析库 (如 Gson 或 Jackson) 解析字符流并生成 JSONObject 对象。
Gson gson = new Gson();
JSONObject jsonObject = gson.fromJson(reader, JSONObject.class);
4. 关闭输入流和字符流。
reader.close();
inputStream.close();
5. 创建一个文件输出流,将 JSONObject 对象写入文件。
FileOutputStream outputStream = new FileOutputStream("D:\\1.txt");
OutputStreamWriter writer = new OutputStreamWriter(outputStream);
6. 将 JSONObject 对象转换为字符串并写入文件。
String jsonString = gson.toJson(jsonObject);
writer.write(jsonString);
7. 关闭输出流和字符流。
writer.close();
outputStream.close();
注意: 当文件较大时, 使用缓冲流 (BufferedReader 和 BufferedWriter) 可能会更有效率。