在 Java 中解析 JSON ArrayList 的详细指南

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 【8月更文挑战第23天】

概述

在 Java 中,我们可以使用多种库来解析 JSON,其中最流行的是 org.jsonJackson。这两个库都提供了丰富的 API,使得解析 JSON 变得简单。本指南将分别介绍如何使用这两个库来解析 JSON Array。

使用 org.json 解析 JSON Array

org.json 是一个轻量级的 JSON 库,它可以用于解析 JSON 数据。以下是一个使用 org.json 解析 JSON Array 的示例:

import org.json.JSONArray;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class ParseJsonArrayExample {
   
    public static void main(String[] args) {
   
        String jsonString = "[{\"name\":\"Alice\",\"age\":30},{\"name\":\"Bob\",\"age\":25}]";
        JSONArray jsonArray = new JSONArray(jsonString);

        List<Person> persons = new ArrayList<>();
        for (int i = 0; i < jsonArray.length(); i++) {
   
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            String name = jsonObject.getString("name");
            int age = jsonObject.getInt("age");
            persons.add(new Person(name, age));
        }

        System.out.println(persons);  // 输出: [Person{name='Alice', age=30}, Person{name='Bob', age=25}]
    }
}

class Person {
   
    private String name;
    private int age;

    public Person(String name, int age) {
   
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
   
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

在这个例子中,我们首先创建了一个包含两个对象的 JSON Array 字符串。然后,我们使用 JSONArray 类解析这个字符串,并通过循环遍历每个元素。对于每个元素,我们使用 getJSONObject 方法获取 JSONObject,然后从 JSONObject 中提取属性并创建一个 Person 对象。

使用 Jackson 解析 JSON Array

Jackson 是一个功能强大的 JSON 库,它可以用于解析和生成 JSON 数据。以下是一个使用 Jackson 解析 JSON Array 的示例:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.TypeFactory;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class ParseJsonArrayWithJacksonExample {
   
    public static void main(String[] args) {
   
        String jsonString = "[{\"name\":\"Alice\",\"age\":30},{\"name\":\"Bob\",\"age\":25}]";
        ObjectMapper objectMapper = new ObjectMapper();

        try {
   
            List<Person> persons = objectMapper.readValue(jsonString, TypeFactory.defaultInstance().constructCollectionType(List.class, Person.class));
            System.out.println(persons);  // 输出: [Person{name='Alice', age=30}, Person{name='Bob', age=25}]
        } catch (IOException e) {
   
            e.printStackTrace();
        }
    }
}

class Person {
   
    private String name;
    private int age;

    // Getters and setters...

    @Override
    public String toString() {
   
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

在这个例子中,我们使用了 ObjectMapper 类的 readValue 方法来解析 JSON Array 字符串。我们需要指定目标类型,这可以通过 TypeFactory 类来构造。然后,readValue 方法会将 JSON Array 转换为 ArrayList<Person>

总结

在 Java 中解析 JSON Array 可以使用 org.jsonJackson 库。这两个库都提供了丰富的 API,可以简化 JSON 的解析过程。理解这些库的使用可以帮助我们更有效地处理 JSON 数据,并在 Java 应用程序中利用这些数据。

目录
相关文章
|
9天前
|
Java
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
本文介绍了Java中抽象类和抽象方法的使用,以及ArrayList的基本操作,包括添加、获取、删除元素和判断列表是否为空。
13 2
java基础(12)抽象类以及抽象方法abstract以及ArrayList对象使用
|
3天前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
9 1
|
6天前
|
JSON Java fastjson
java小工具util系列3:JSON和实体类转换工具
java小工具util系列3:JSON和实体类转换工具
11 2
|
5天前
|
存储 算法 Java
深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
本文介绍了 JVM 的内存区域划分、类加载过程及垃圾回收机制。内存区域包括程序计数器、堆、栈和元数据区,每个区域存储不同类型的数据。类加载过程涉及加载、验证、准备、解析和初始化五个步骤。垃圾回收机制主要在堆内存进行,通过可达性分析识别垃圾对象,并采用标记-清除、复制和标记-整理等算法进行回收。此外,还介绍了 CMS 和 G1 等垃圾回收器的特点。
14 0
深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
|
8天前
|
监控 算法 Java
深入解析Java中的垃圾回收机制
本文旨在全面解析Java的垃圾回收机制,探讨其工作原理、常见算法以及在实际开发中的应用。通过对这一重要主题的深入分析,希望帮助读者更好地理解Java虚拟机(JVM)如何管理内存,从而编写出更高效、稳定的Java应用程序。
|
8天前
|
Java 开发者
Java中的异常处理机制深度解析
在Java编程中,异常处理是保证程序稳定性和健壮性的重要手段。本文将深入探讨Java的异常处理机制,包括异常的分类、捕获与处理、自定义异常以及一些最佳实践。通过详细讲解和代码示例,帮助读者更好地理解和应用这一机制,提升代码质量。
12 1
|
10天前
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
40 2
|
9天前
|
分布式计算 Java API
深入解析Java中的Lambda表达式及其应用
本文将深入探讨Java中Lambda表达式的定义、优势及其在实际编程中的应用。通过具体示例,帮助读者更好地理解和使用这一强大的编程工具。
|
JSON Java Maven
在Java中,我们可以使用第三方库来解析JSON数据
在Java中,我们可以使用第三方库来解析JSON数据。这里以常用的Jackson库为例,演示如何解析JSON数据。
83 1
|
JSON Java Maven

热门文章

最新文章

推荐镜像

更多
下一篇
无影云桌面