【JAVA】解析Json字符串常见方式

解析 JSON 字符串通常涉及到将 JSON 格式的文本转换成可以被程序操作的对象结构。在 Java 中,可以使用多种库来实现这一点,例如 Jackson、Gson、Fastjson 等。下面使用这些库进行 JSON 解析的基本步骤和示例代码。

示例类定义

首先,我们定义一个简单的 Java 类来表示 JSON 数据的结构。假设我们有以下 OrderDto

public class OrderDto {
    private String orderId;
    private String userId;
    private String productId;
    private int quantity;

    public OrderDto(String orderId, String userId, String productId, int quantity) {
        this.orderId = orderId;
        this.userId = userId;
        this.productId = productId;
        this.quantity = quantity;
    }

    // Getters and setters
    public String getOrderId() { return orderId; }
    public void setOrderId(String orderId) { this.orderId = orderId; }
    public String getUserId() { return userId; }
    public void setUserId(String userId) { this.userId = userId; }
    public String getProductId() { return productId; }
    public void setProductId(String productId) { this.productId = productId; }
    public int getQuantity() { return quantity; }
    public void setQuantity(int quantity) { this.quantity = quantity; }

    @Override
    public String toString() {
        return "OrderDto{" +
                "orderId='" + orderId + '\'' +
                ", userId='" + userId + '\'' +
                ", productId='" + productId + '\'' +
                ", quantity=" + quantity +
                '}';
    }
}

使用 Jackson 进行解析

Jackson 是一个非常流行的 JSON 处理库,提供了灵活且高性能的方法来处理 JSON 数据

添加依赖

首先,确保您的项目中包含了 Jackson 的依赖。如果您使用 Maven,可以在 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version>
</dependency>
解析示例

接下来,我们可以使用 Jackson 库来解析 JSON 字符串:

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonExample {
    public static void main(String[] args) {
        ObjectMapper mapper = new ObjectMapper();
        
        String json = "{\"orderId\":\"123456\",\"userId\":\"user123\",\"productId\":\"product456\",\"quantity\":2}";

        try {
            OrderDto orderDto = mapper.readValue(json, OrderDto.class);
            System.out.println(orderDto.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用 Gson 进行解析

Gson 是另一个常用的 JSON 处理库,由 Google 提供。

添加依赖

对于 Maven 项目,在 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10</version>
</dependency>
解析示例

使用 Gson 解析 JSON 字符串:

import com.google.gson.Gson;

public class JsonExample {
    public static void main(String[] args) {
        Gson gson = new Gson();

        String json = "{\"orderId\":\"123456\",\"userId\":\"user123\",\"productId\":\"product456\",\"quantity\":2}";
        
        OrderDto orderDto = gson.fromJson(json, OrderDto.class);
        System.out.println(orderDto.toString());
    }
}

使用 Fastjson 进行解析

Fastjson 是阿里巴巴开源的一个 JSON 处理库,性能优异。

添加依赖

对于 Maven 项目,在 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.93</version>
</dependency>
解析示例

使用 Fastjson 解析 JSON 字符串:

import com.alibaba.fastjson.JSON;

public class JsonExample {
    public static void main(String[] args) {
        String json = "{\"orderId\":\"123456\",\"userId\":\"user123\",\"productId\":\"product456\",\"quantity\":2}";
        
        OrderDto orderDto = JSON.parseObject(json, OrderDto.class);
        System.out.println(orderDto.toString());
    }
}

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java解析JSON字符串可以使用JSON库,例如Jackson、Gson、FastJSON等。这里以使用Jackson库为例,介绍如何解析JSON字符串。 假设有以下JSON字符串: ``` { "name": "Tom", "age": 25, "email": "tom@example.com", "address": { "city": "Beijing", "country": "China" }, "hobbies": ["reading", "swimming", "traveling"] } ``` 我们可以使用以下代码将其解析Java对象: ```java import com.fasterxml.jackson.databind.ObjectMapper; public class Main { public static void main(String[] args) throws Exception { String jsonString = "{\n" + " \"name\": \"Tom\",\n" + " \"age\": 25,\n" + " \"email\": \"tom@example.com\",\n" + " \"address\": {\n" + " \"city\": \"Beijing\",\n" + " \"country\": \"China\"\n" + " },\n" + " \"hobbies\": [\"reading\", \"swimming\", \"traveling\"]\n" + "}"; ObjectMapper objectMapper = new ObjectMapper(); Person person = objectMapper.readValue(jsonString, Person.class); System.out.println(person); } } class Person { private String name; private int age; private String email; private Address address; private String[] hobbies; // 省略 getter 和 setter 方法 @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ", email='" + email + '\'' + ", address=" + address + ", hobbies=" + Arrays.toString(hobbies) + '}'; } } class Address { private String city; private String country; // 省略 getter 和 setter 方法 @Override public String toString() { return "Address{" + "city='" + city + '\'' + ", country='" + country + '\'' + '}'; } } ``` 在上面的代码中,我们使用Jackson库的ObjectMapper类将JSON字符串解析Java对象。在Person类中定义了与JSON字符串对应的字段,而Address类则是Person类的一个成员变量。 可以看到,使用Jackson库解析JSON字符串非常方便,只需要将JSON字符串和对应的Java类传入ObjectMapper的readValue方法即可。同时,Jackson库也支持将Java对象转换为JSON字符串,具体操作可以查阅Jackson库的文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值