下面是详细讲解“JAVA 格式化JSON数据并保存到json文件中的实例”的攻略。
1. 引入依赖
在JAVA中对JSON格式化的操作一般使用 GSON 库。在项目中需要先引入 GSON 库的依赖。
Maven依赖:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
Gradle依赖:
implementation 'com.google.code.gson:gson:2.8.5'
2. 创建Java对象
首先我们需要创建对应的Java对象,比如一个用户类:
public class User {
private String name;
private int age;
private String[] hobbies;
// 构造函数、getter、setter省略
}
3. 将Java对象转化为JSON
将Java对象转换为JSON数据非常简单,只需要使用 Gson 类中的 toJson 方法即可。
User user = new User();
user.setName("张三");
user.setAge(20);
user.setHobbies(new String[]{"阅读", "旅游"});
String json = new Gson().toJson(user);
System.out.println(json);
输出结果为:
{
"name": "张三",
"age": 20,
"hobbies": [
"阅读",
"旅游"
]
}
4. 将JSON格式化并保存到文件中
对于上面的例子,我们可以将生成的JSON字符串进行格式化,并将其保存到一个文件中。
try (FileWriter writer = new FileWriter("user.json")) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
gson.toJson(user, writer);
} catch (IOException e) {
e.printStackTrace();
}
通过上面的操作,我们可以将JSON数据格式化,并保存到user.json文件中。
示例1:对复杂的JSON数据进行格式化并保存
下面是一个比较复杂的JSON格式的示例数据:
{
"userId": 1,
"firstName": "John",
"lastName": "Doe",
"contacts": [
{
"type": "email",
"value": "john.doe@example.com"
},
{
"type": "phone",
"value": "123-456-789"
}
],
"address": {
"street": "123 Main Street",
"city": "New York",
"state": "NY",
"zipCode": "10001"
}
}
对于上面的JSON格式的数据,我们需要定义对应的Java类:
public class Contact {
private String type;
private String value;
// 构造函数、getter、setter省略
}
public class Address {
private String street;
private String city;
private String state;
private String zipCode;
// 构造函数、getter、setter省略
}
public class User {
private long userId;
private String firstName;
private String lastName;
private List<Contact> contacts;
private Address address;
// 构造函数、getter、setter省略
}
我们可以通过以下方式将其对应的Java对象转化为JSON,并格式化和保存到文件中。
User user = new User();
user.setUserId(1L);
user.setFirstName("John");
user.setLastName("Doe");
Contact email = new Contact();
email.setType("email");
email.setValue("john.doe@example.com");
Contact phone = new Contact();
phone.setType("phone");
phone.setValue("123-456-789");
List<Contact> contacts = new ArrayList<>();
contacts.add(email);
contacts.add(phone);
user.setContacts(contacts);
Address address = new Address();
address.setStreet("123 Main Street");
address.setCity("New York");
address.setState("NY");
address.setZipCode("10001");
user.setAddress(address);
try (FileWriter writer = new FileWriter("user.json")) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
gson.toJson(user, writer);
} catch (IOException e) {
e.printStackTrace();
}
示例2:读取JSON文件并转化为对应的Java对象
有时我们需要读取JSON文件,并将其转化为对应的Java对象。下面是一个user.json文件中存储的数据:
{
"name": "张三",
"age": 20,
"hobbies": [
"阅读",
"旅游"
]
}
我们可以通过以下方式读取JSON文件,并将其转化为对应的Java对象。
try (FileReader reader = new FileReader("user.json")) {
Gson gson = new Gson();
User user = gson.fromJson(reader, User.class);
System.out.println(user.getName());
System.out.println(user.getAge());
} catch (IOException e) {
e.printStackTrace();
}
通过上面的操作,我们可以将user.json文件中存储的JSON数据读取,并转化为对应的Java对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA 格式化JSON数据并保存到json文件中的实例 - Python技术站