Java 8 获取 JSON 中的某个值

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java 8中,我们可以使用一些流行的库来处理JSON数据,比如Jackson和Gson。本文将介绍如何使用Java 8和Jackson库来获取JSON中的某个值。

准备工作

首先,我们需要添加Jackson库到我们的项目中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

使用Jackson解析JSON

Jackson提供了一个非常灵活的方式来解析JSON数据。我们可以使用ObjectMapper类来将JSON字符串转换为Java对象,然后访问对象的属性来获取我们需要的值。

示例JSON数据

假设我们有以下JSON数据:

{
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main St",
    "city": "Anytown"
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
Java类定义

我们需要定义一个Java类来映射这个JSON数据:

public class Person {
    private String name;
    private int age;
    private Address address;

    // Getters and Setters
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
public class Address {
    private String street;
    private String city;

    // Getters and Setters
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
解析JSON并获取值

接下来,我们使用ObjectMapper来解析JSON字符串,并获取我们需要的值:

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonExample {
    public static void main(String[] args) {
        String json = "{\"name\": \"John Doe\", \"age\": 30, \"address\": {\"street\": \"123 Main St\", \"city\": \"Anytown\"}}";

        ObjectMapper objectMapper = new ObjectMapper();
        try {
            Person person = objectMapper.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());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

使用Gson解析JSON

Gson是另一个流行的JSON处理库,它提供了一种更简单的方式来解析JSON数据。

添加Gson依赖

如果你选择使用Gson,需要在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
</dependency>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
使用Gson解析JSON

使用Gson解析JSON的方法如下:

import com.google.gson.Gson;

public class JsonExample {
    public static void main(String[] args) {
        String json = "{\"name\": \"John Doe\", \"age\": 30, \"address\": {\"street\": \"123 Main St\", \"city\": \"Anytown\"}}";

        Gson gson = new Gson();
        Person person = gson.fromJson(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());
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

饼状图示例

使用Mermaid语法,我们可以生成一个简单的饼状图来表示JSON解析库的选择:

JSON解析库选择 50% 50% JSON解析库选择 Jackson Gson

类图示例

使用Mermaid语法,我们可以生成一个类图来表示PersonAddress类的关系:

Person +String name +int age +Address address Address +String street +String city

结语

本文介绍了如何在Java 8中使用Jackson和Gson库来解析JSON数据并获取其中的值。通过定义相应的Java类并使用这些库提供的方法,我们可以轻松地处理JSON数据。希望本文能帮助你更好地理解和使用JSON数据。