java gson list转json_使用com.google.gson包将json数据文件转换成List的方法
时间: 2023-08-08 11:09:51 浏览: 90
Google_开源项目_Gson教程
假设你有一个json数据文件,其中包含一个数组,你可以使用 com.google.gson 包中的 Gson 类来将它转换成一个 List。以下是一个示例代码:
```java
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.List;
public class JsonToListExample {
public static void main(String[] args) {
try {
Gson gson = new Gson();
BufferedReader br = new BufferedReader(
new FileReader("data.json"));
// 将json数据读入字符串
String jsonStr = "";
String line;
while ((line = br.readLine()) != null) {
jsonStr += line;
}
// 使用 TypeToken 将json字符串转换成 List
List<MyObject> list = gson.fromJson(jsonStr,
new TypeToken<List<MyObject>>(){}.getType());
// 打印 List 中的每个对象
for (MyObject obj : list) {
System.out.println(obj.toString());
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们假设 json 数据文件名为 "data.json",并且文件内容如下:
```json
[
{
"id": 1,
"name": "Alice"
},
{
"id": 2,
"name": "Bob"
},
{
"id": 3,
"name": "Charlie"
}
]
```
我们使用 BufferedReader 从文件中读取 json 数据,然后将其转换成 List<MyObject>。在这里,MyObject 是一个自定义的类,其定义如下:
```java
public class MyObject {
private int id;
private String name;
public MyObject(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "MyObject{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
```
最后,我们遍历 List 中的每个对象并将其打印出来。注意,在 TypeToken 中使用匿名内部类来指定 List 的元素类型。
阅读全文