Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java解析json字符串


在 Java 中解析 JSON 字符串有多种方式,以下是常用的几种实现方式,以及每种方式的步骤流程、示例代码和依赖坐标。

假设我们有以下 JSON 字符串作为示例:

{
  "name": "John Doe",
  "age": 30,
  "isStudent": false,
  "address": {
    "street": "123 Main St",
    "city": "Exampletown"
  },
  "hobbies": ["reading", "swimming", "gaming"]
}

使用 org.json 库

这是一个简单的 JSON 处理库,可以在不使用任何 Maven 或 Gradle 依赖的情况下使用。

步骤流程:

  1. 导入 org.json 库。
  2. 创建一个 JSONObject 对象,将 JSON 字符串传递给构造函数。
  3. 使用对象的方法来获取 JSON 数据。

示例代码:

import org.json.JSONObject;

public class JSONParsingUsingOrgJson {
    public static void main(String[] args) {
        String jsonString = "{\"name\":\"John Doe\",\"age\":30,\"isStudent\":false,\"address\":{\"street\":\"123 Main St\",\"city\":\"Exampletown\"},\"hobbies\":[\"reading\",\"swimming\",\"gaming\"]}";

        JSONObject jsonObject = new JSONObject(jsonString);

        String name = jsonObject.getString("name");
        int age = jsonObject.getInt("age");
        boolean isStudent = jsonObject.getBoolean("isStudent");
        JSONObject address = jsonObject.getJSONObject("address");
        JSONArray hobbies = jsonObject.getJSONArray("hobbies");

        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("Is Student: " + isStudent);
        System.out.println("Street: " + address.getString("street"));
        System.out.println("City: " + address.getString("city"));
        System.out.println("Hobbies: " + hobbies);
    }
}

依赖坐标

无需依赖,直接使用 org.json 库。

使用 Jackson 库

Jackson 是一个广泛使用的 JSON 处理库,可以通过 Maven 或 Gradle 添加依赖。

步骤流程:

  1. 添加 Jackson 依赖。
  2. 创建 ObjectMapper 对象。
  3. 使用 readValue 方法将 JSON 字符串转换为 Java 对象。

示例代码:

import com.fasterxml.jackson.databind.ObjectMapper;

public class JSONParsingUsingJackson {
    public static void main(String[] args) throws Exception {
        String jsonString = "{\"name\":\"John Doe\",\"age\":30,\"isStudent\":false,\"address\":{\"street\":\"123 Main St\",\"city\":\"Exampletown\"},\"hobbies\":[\"reading\",\"swimming\",\"gaming\"]}";

        ObjectMapper objectMapper = new ObjectMapper();
        Person person = objectMapper.readValue(jsonString, Person.class);

        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
        System.out.println("Is Student: " + person.isStudent());
        System.out.println("Street: " + person.getAddress().getStreet());
        System.out.println("City: " + person.getAddress().getCity());
        System.out.println("Hobbies: " + person.getHobbies());
    }
}

class Person {
    private String name;
    private int age;
    private boolean isStudent;
    private Address address;
    private List<String> hobbies;

    // Getters and setters
}

class Address {
    private String street;
    private String city;

    // Getters and setters
}

依赖坐标

Maven:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.0</version>
</dependency>

Gradle:

implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.0'

这些是解析 JSON 字符串的两种常用方式,每种方式都有其优势和适用场景。选择其中一种方式来解析 JSON 取决于项目的需求和个人偏好。

在Java中,解析JSON数据有多种方式,可以使用标准库,也可以借助第三方库来简化操作。示例代码:Maven依赖:###使用Jackson库 ...
在Java中,将JSON字符串转换为JSON对象可以使用多种不同的方式。示例代码:###方式二:使用Jackson库添加依赖(Maven和G ...
下面我将介绍两种常用的实现方式:使用GZIP压缩和使用Deflate压缩。以下是实现的步骤:导入必要的库:在你的Maven项目中,需要在`p ...
在Java中将Map转换为JSON字符串有多种方式可以实现,下面我将介绍三种常用的方式,并提供示例代码以及相关依赖的Maven和Gradle ...
下面我将介绍两种常见的实现方式,包括使用原生的Java类库和使用第三方库(如Jackson)。Maven依赖:Gradle依赖:示例代码:这 ...