Orgjson 入门

JavaBeginner
立即练习

介绍

在本实验中,你将学习如何使用 org.json 库在 Java 中处理 JSON。我们将介绍该库提供的类和方法,包括如何创建 JSON 对象和数组、如何将 JSON 数据转换为其他格式,以及如何处理 JSON 异常。

创建 JSONObject

JSONObject 用于存储键值对。以下是一个创建 JSONObject 的示例:

import org.json.JSONObject;

public class Main {
  public static void main(String[] args) {
    JSONObject jo = new JSONObject();
    jo.put("name", "John");
    jo.put("age", 25);
    System.out.println(jo.toString());
  }
}

要运行代码,请在终端中执行以下命令。

javac Main.java && java Main

上述代码将创建一个包含两个键值对(nameage)的 JSONObject,并将其打印到控制台。

创建 JSONArray

JSONArray 是一个有序的值集合。以下是一个创建 JSONArray 的示例:

import org.json.JSONArray;

public class Main {
  public static void main(String[] args) {
    JSONArray ja = new JSONArray();
    ja.put(10);
    ja.put("A string");
    System.out.println(ja.toString());
  }
}

要运行代码,请在终端中执行以下命令。

javac Main.java && java Main

上述代码将创建一个包含两个值(10"A string")的 JSONArray,并将其打印到控制台。

将 JSON 转换为字符串

要将 JSONObjectJSONArray 转换为字符串,可以使用 toString() 方法。以下是一个示例:

import org.json.JSONObject;

public class Main {
  public static void main(String[] args) {
    JSONObject jo = new JSONObject();
    jo.put("name", "John");
    jo.put("age", 25);

    String jsonString = jo.toString();
    System.out.println(jsonString);
  }
}

要运行代码,请在终端中执行以下命令。

javac Main.java && java Main

上述代码将创建一个包含两个键值对的 JSONObject,将其转换为字符串,然后将字符串打印到控制台。

将 JSON 转换为 Java 对象

org.json 库提供了方便的方法,用于将 JSON 数据转换为 Java 对象。例如,你可以使用 JSONObjectget 方法来获取特定键的值作为 Java 对象。以下是一个示例:

import org.json.JSONObject;

public class Main {
  public static void main(String[] args) {
    JSONObject jo = new JSONObject();
    jo.put("name", "John");
    jo.put("age", 25);

    String name = jo.getString("name");
    int age = jo.getInt("age");

    System.out.println("Name: " + name);
    System.out.println("Age: " + age);
  }
}

要运行代码,请在终端中执行以下命令。

javac Main.java && java Main

上述代码将创建一个包含两个键值对的 JSONObject,获取键 "name""age" 的值,然后将它们打印到控制台。

从字符串创建 JSONObject

如果你有一个有效的 JSON 字符串,可以用它来创建 JSONObject。以下是一个示例:

import org.json.JSONObject;

public class Main {
  public static void main(String[] args) {
    String jsonString = "{\"name\":\"John\",\"age\":25}";

    JSONObject jo = new JSONObject(jsonString);
    System.out.println(jo.toString());
  }
}

要运行代码,请在终端中执行以下命令。

javac Main.java && java Main

上述代码将从 JSON 字符串创建一个 JSONObject,然后将其打印到控制台。

从字符串创建 JSONArray

如果你有一个有效的 JSON 字符串,可以用它来创建 JSONArray。以下是一个示例:

import org.json.JSONArray;

public class Main {
  public static void main(String[] args) {
    String jsonString = "[10,\"A string\"]";

    JSONArray ja = new JSONArray(jsonString);
    System.out.println(ja.toString());
  }
}

要运行代码,请在终端中执行以下命令。

javac Main.java && java Main

上述代码将从 JSON 字符串创建一个 JSONArray,然后将其打印到控制台。

处理 JSON 异常

在使用 org.json 时,你需要处理 JSONException。当你尝试对 JSON 对象或数组执行无效操作时,会抛出这些异常。以下是一个示例:

import org.json.JSONObject;
import org.json.JSONException;

public class Main {
  public static void main(String[] args) {
    try {
      JSONObject jo = new JSONObject();
      jo.put("name", "John");
      System.out.println(jo.getInt("name"));
    } catch (JSONException e) {
      System.out.println("JSONException: " + e.getMessage());
    }
  }
}

要运行代码,请在终端中执行以下命令。

javac Main.java && java Main

上述代码将创建一个 JSONObject,并尝试获取键 "name"int 值,而该键的值是一个 String。这将导致 JSONException,异常会被捕获并打印到控制台。

总结

在本实验中,你学习了如何使用 org.json 库在 Java 中处理 JSON。你学习了如何创建 JSON 对象和数组、如何将 JSON 数据转换为其他格式,以及如何处理 JSON 异常。你还学习了如何导入 org.json 库并将 JSON 数据转换为 Java 对象。