Java读取JSON文件主要是利用JSON解析库来完成,常用的库有JSON-lib,Gson,Jackson等。这些库提供了一种容易的方式来编码和解码JSON文本,允许将JSON文本转换为Java对象,也可以将Java对象转换成JSON文本。
一、使用JSON-lib读取JSON文件 {#title-1}
JSON-lib库是一个给Java对象提供json编解码的API,它也可以将Java Collections转换成json对象,或者转换XML的文档数据。
import net.sf.json.JSONObject;
import java.io.BufferedReader;
import java.io.FileReader;
public class ReadJsonSample {
public static void main(String[] args) {
StringBuilder jsonStr = new StringBuilder();
try {
BufferedReader in = new BufferedReader(new FileReader("file.json"));
String str;
while ((str = in.readLine()) != null) {
jsonStr.append(str);
}
in.close();
} catch (IOException e) {
e.getStackTrace();
}
System.out.println("The JSON File content is:\n" + jsonStr.toString());
JSONObject jsonObject = JSONObject.fromObject(jsonStr.toString());
System.out.println("The JSON Object is:\n" + jsonObject);
}
}
二、使用Gson库读取JSON文件 {#title-2}
Google的Gson库也是一个强大的json处理库,通过Gson,我们可以将json字符串转换为强类型的Java对象,也可以将Java对象转换为json字符串。
import com.google.gson.Gson;
import com.google.gson.stream.JsonReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class ReadJsonSample {
public static void main(String[] args) {
Gson gson = new Gson();
try {
Reader reader = new FileReader("file.json");
JsonReader jsonReader = new JsonReader(reader);
SampleObject object = gson.fromJson(jsonReader, SampleObject.class);
System.out.println(object);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
三、使用Jackson库读取JSON文件 {#title-3}
Jackson是一种能将Java对象转换为Json对象,同时也能将Json对象转换为Java对象的库。
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
public class ReadJsonSample {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
User user = mapper.readValue(new File("file.json"), User.class);
System.out.println(user.getName());
System.out.println(user.getAge());
} catch (IOException e) {
e.printStackTrace();
}
}
}