Java中提取JSON数据的方法有哪些?详细步骤和技巧分享?
- 后端开发
- 2025-09-22
- 6
在Java中提取JSON数据通常需要使用JSON处理库,如Jackson或Gson,以下是一个使用Jackson库提取JSON数据的详细步骤。

添加依赖
需要在项目中添加Jackson库的依赖,如果是使用Maven,可以在pom.xml文件中添加以下依赖:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jacksondatabind</artifactId> <version>2.13.0</version> </dependency>
创建JSON字符串
假设有一个JSON字符串如下:

解析JSON字符串
使用Jackson的ObjectMapper类来解析JSON字符串。

import com.fasterxml.jackson.databind.ObjectMapper; public class JsonExample { public static void main(String[] args) { String json = "{"name":"John","age":30,"address":{"street":"123 Main St","city":"Anytown"},"phones":[{"type":"home","number":"1234567890"},{"type":"mobile","number":"9876543210"}]}"; ObjectMapper mapper = new ObjectMapper(); try { // 将JSON字符串转换为Java对象 Person person = mapper.readValue(json, Person.class); // 打印结果 System.out.println("Name: " + person.getName()); System.out.println("Age: " + person.getAge()); System.out.println("Street: " + person.getAddress().getStreet()); System.out.println("City: " + person.getAddress().getCity()); System.out.println("Home Phone: " + person.getPhones().get(0).getNumber()); System.out.println("Mobile Phone: " + person.getPhones().get(1).getNumber()); } catch (Exception e) { e.printStackTrace(); } } } class Person { private String name; private int age; private Address address; private List<Phone> phones; // Getters and setters public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public List<Phone> getPhones() { return phones; } public void setPhones(List<Phone> phones) { this.phones = phones; } } class Address { private String street; private String city; // Getters and setters public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } } class Phone { private String type; private String number; // Getters and setters public String getType() { return type; } public void setType(String type) { this.type = type; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } }
FAQs
Q1: 如何处理JSON数组中的数据?
A1: 当JSON字符串中包含数组时,可以使用Jackson的TypeReference来处理,以下是一个示例:
List<Person> people = mapper.readValue(json, new TypeReference<List<Person>>(){});
Q2: 如何处理嵌套JSON对象?
A2: 当JSON对象中嵌套另一个JSON对象时,只需要在Java类中添加相应的属性即可,如上述示例中的Person类中的address属性,Jackson会自动处理嵌套对象。