在 Java 中,解析 JSON 数据有多种方式,可以使用标准库,也可以借助第三方库来简化操作。下面我将介绍几种常用的 JSON 解析方式,并提供相应的代码示例和 Maven/Gradle 依赖坐标。
注意:以下示例假设你已经有一个包含 JSON 数据的字符串或者输入流。
Java 标准库提供了 javax.json
包,可以用于解析 JSON 数据。
步骤流程:
javax.json
库。JsonReader
来解析 JSON 数据。示例代码:
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;
import java.io.StringReader;
public class JsonParsingUsingStdLib {
public static void main(String[] args) {
String jsonStr = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
try (JsonReader reader = Json.createReader(new StringReader(jsonStr))) {
JsonObject jsonObject = reader.readObject();
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
String city = jsonObject.getString("city");
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("City: " + city);
}
}
}
Maven 依赖:
<dependency>
<groupId>javax.json</groupId>
<artifactId>javax.json-api</artifactId>
<version>1.1.4</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.1.4</version>
</dependency>
Jackson 是一个流行的 JSON 处理库,提供了高性能的 JSON 解析和生成功能。
步骤流程:
ObjectMapper
对象并使用其方法解析 JSON 数据。示例代码:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonParsingUsingJackson {
public static void main(String[] args) throws Exception {
String jsonStr = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(jsonStr);
String name = jsonNode.get("name").asText();
int age = jsonNode.get("age").asInt();
String city = jsonNode.get("city").asText();
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("City: " + city);
}
}
Maven 依赖:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.12.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.5</version>
</dependency>
Gson 是 Google 提供的另一个常用的 JSON 处理库,具有简单易用的 API。
步骤流程:
Gson
对象并使用其方法解析 JSON 数据。示例代码:
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class JsonParsingUsingGson {
public static void main(String[] args) {
String jsonStr = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
JsonParser jsonParser = new JsonParser();
JsonElement jsonElement = jsonParser.parse(jsonStr);
JsonObject jsonObject = jsonElement.getAsJsonObject();
String name = jsonObject.get("name").getAsString();
int age = jsonObject.get("age").getAsInt();
String city = jsonObject.get("city").getAsString();
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("City: " + city);
}
}
Maven 依赖:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency>
这些是几种常见的 JSON 解析方式,你可以根据自己的项目需求选择合适的库和方法来解析 JSON 数据。每种方式都有其优势和特点,选择适合你项目的方式是很重要的。