Java 读取文件内容并解析 Json 格式数据的方式可以通过 Gson 这个 Google 提供的开源库来实现。
以下是实现步骤:
步骤1:导入Gson库
在 pom.xml 中添加以下依赖:
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
</dependencies>
步骤2:读取文件内容
使用 Java I/O 流来读取文件内容,可以使用 BufferedReader 或 Scanner 类来读取文件内容。这里我们使用 BufferedReader 来将文件内容读取到内存中。
String filePath = "test.json";
File file = new File(filePath);
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
// 处理一行文件内容
}
} catch (IOException e) {
e.printStackTrace();
}
步骤3:解析 Json 格式数据
使用 Gson.fromJson() 方法来将 Json 格式数据转换成 Java 对象。
Gson gson = new Gson();
Data data = gson.fromJson(jsonString, Data.class);
这里的 Data 是一个实体类,需要按照 Json 数据结构定义好实体类的属性。
下面是一个示例:
假设我们有一个名为 example.json 的文件,内容如下:
{
"name": "John",
"age": 30,
"address": {
"street": "Main St.",
"city": "New York",
"state": "NY"
},
"phoneNumbers": [
"212-555-1234",
"646-555-4567"
]
}
我们可以通过以下代码将其转换成 Java 对象:
public class Person {
private String name;
private int age;
private Address address;
private List<String> phoneNumbers;
// getters and setters
}
public class Address {
private String street;
private String city;
private String state;
// getters and setters
}
Gson gson = new Gson();
File file = new File("example.json");
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
Person person = gson.fromJson(br, Person.class);
System.out.println(person.getName());
System.out.println(person.getAddress().getCity());
} catch (IOException e) {
e.printStackTrace();
}
这样就可以将 example.json 文件中的内容解析成一个 Person 对象,并输出其中的 name 和 city 属性。
另外一个示例是将 Json 数组转换成 Java 对象列表,实现如下:
[
{
"name": "Alice",
"age": 20
},
{
"name": "Bob",
"age": 30
}
]
public class Person {
private String name;
private int age;
// getters and setters
}
Gson gson = new Gson();
File file = new File("example.json");
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
Type listType = new TypeToken<List<Person>>(){}.getType();
List<Person> persons = gson.fromJson(br, listType);
for (Person person : persons) {
System.out.println(person.getName());
System.out.println(person.getAge());
}
} catch (IOException e) {
e.printStackTrace();
}
这样就可以将 example.json 文件中的内容解析成一个 Person 的列表,并输出其中的 name 和 age 属性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java读取文件内容,解析Json格式数据方式 - Python技术站