📜  java 在 json 中查找 (1)

📅  最后修改于: 2023-12-03 14:42:18.105000             🧑  作者: Mango

在 JSON 中查找数据-using Java

简介

JSON(JavaScript 对象表示法)是一种轻量级的数据交换格式,常用于前后端数据传输和存储。在 Java 中,我们可以使用内置的 JSON 解析器来处理 JSON 数据。在本文中,我们将介绍如何使用 Java 解析 JSON 数据并查找所需的数据。

JSON 数据格式

JSON 数据由键-值对组成,使用花括号表示对象 {} 或者中括号表示数组 []。JSON 中的值可以是字符串、数字、布尔、null、数组或者对象。以下是一个简单的 JSON 示例:

{
  "name": "John Doe",
  "age": 30,
  "city": "New York",
  "pets": ["dog", "cat"],
  "isMarried": true,
  "car": null
}
使用 Java 解析 JSON

在 Java 中,我们可以使用一些第三方库来解析 JSON。本文将使用 org.json 库,它是一个基于 Java 的 JSON 解析器和构建器。

添加依赖

首先,我们需要在项目中添加 org.json 库的依赖。我们可以在 Maven 中添加以下依赖:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20211205</version>
</dependency>
解析 JSON

以下是如何解析 JSON 数据的简单示例:

import org.json.JSONObject;

public class JsonDemo {
    public static void main(String[] args) {
        JSONObject jsonObject = new JSONObject("{ \"name\":\"John\", \"age\":30, \"city\":\"New York\" }");
        String name = jsonObject.getString("name");
        int age = jsonObject.getInt("age");
        String city = jsonObject.getString("city");
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("City: " + city);
    }
}

输出结果:

Name: John
Age: 30
City: New York

在以上示例中,我们使用了 JSONObject 类来解析 JSON 数据。我们可以使用 getStringgetInt 等方法来取出所需的数据。

在 JSON 中查找数据

如果我们需要在 JSON 中查找特定的数据,可以使用以下方法:

  • JSONObject.has(String key):判断 JSON 中是否包含指定键。
  • JSONObject.get(String key):获取指定键对应的值,如果键不存在则返回 null。
  • JSONObject.getString(String key):获取指定键对应的字符串类型的值。
  • JSONObject.getInt(String key):获取指定键对应的整型值。
  • JSONObject.getBoolean(String key):获取指定键对应的布尔型值。
  • JSONObject.getJSONObject(String key):获取指定键对应的 JSON 对象。
  • JSONObject.getJSONArray(String key):获取指定键对应的 JSON 数组。

以下是在 JSON 中查找数据的示例:

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

public class JsonDemo {
    public static void main(String[] args) {
        JSONObject jsonObject = new JSONObject("{ \"name\":\"John Doe\", \"age\":30, \"address\":{\"city\":\"New York\", \"state\":\"NY\"}, \"pets\": [\"dog\", \"cat\"] }");
        System.out.println("Name: " + jsonObject.getString("name"));
        System.out.println("Age: " + jsonObject.getInt("age"));
        System.out.println("City: " + jsonObject.getJSONObject("address").getString("city"));
        System.out.println("Pets: " + jsonObject.getJSONArray("pets"));
    }
}

输出结果:

Name: John Doe
Age: 30
City: New York
Pets: ["dog", "cat"]

在以上示例中,我们使用了 JSONObjectJSONArray 类来查找数据。通过 getJSONObject 方法,我们可以获取嵌套的 JSON 对象;通过 getJSONArray 方法,我们可以获取 JSON 数组。

结论

以上是在 Java 中解析和查找 JSON 数据的方法。通过 org.json 库,我们可以轻松地处理 JSON 数据,按需取出所需的内容。