How to Get Value from JSON Object in Java Example

2025 年 3 月 25 日 | 阅读 5 分钟

JSON 是一种数据交换格式。它是一种广泛使用、轻量级且与语言无关的格式。它可以将数据从 JSON 转换为 XML。Java 提供了大量的 JSON 包。借助这些包,我们可以检索或从 JSONObject 获取值。 我们使用了两个不同的 JSON 包org.jsonorg.json.simple。在本节中,我们将学习如何通过一个合适的示例从 Java 中的 JSONObject 获取值。

Java 中的 JSONObject 是什么?

Java 中,JSONObject 是一个无序集合,它以名称-值对的形式包含数据。它表示为一对花括号括起来的字符串,名称和值之间用冒号分隔。其内部形式是一个对象,具有用于按名称访问值以及按名称添加和替换值的 get 和 put 方法。

在上面的示例中,first name、cityage 是名称,而 John、Florida22 分别是它们的值。

Java JSONObject 类

Java 提供了 JSONObject 类,它定义在 org.json 包中。它表示一个不可变的(不可更改的)JSONObject 值。对象值是一组无序名称-值对。它还提供了 Map 来查看 JSON 对象名称-值映射,该映射是不可修改的。JSONObject 的值可以是Boolean、String、Number、JSONObject、JSONArray、JSONNumber、JSONString 等。 可以使用各种相应的访问器方法来访问这些 JSONObject 值。

get() 方法在找到值时返回该值,如果找不到值则抛出异常。而 opt() 方法则返回默认值而不是抛出异常。该值可能为 null。这是这两个方法之间的主要区别。因此,这两个方法对于从 JSONObject 获取值很有用。我们可以转换或查询由通用方法 get() 和 opt() 返回的对象。

JSONObject 类包含以下方法,我们可以使用它们从 JSONObject 获取值。

getBoolean() 方法

该方法解析类型为 String 的参数名。它返回与参数相关的映射的布尔值。如果关联的映射是 JsonValue.TRUE,则返回 true;如果关联的映射是 JsonValue.FALSE,则返回 false。

语法

如果指定的名称没有映射,则抛出 NullPointerException。如果指定的名称映射不可分配给 JsonValue.TRUE 或 JsonValue.FALSE,则还抛出 ClassCastException

getInt() 方法

它用于获取 JsonNumber(name).intValue()。 该方法解析类型为 String 的参数名。它返回已解析参数的关联映射的整数值。

语法

如果指定的名称没有映射,则抛出 NullPointerException。如果指定的名称映射不可分配给 JsonNumber,则还抛出 ClassCastException

getJsonArray() 方法

它用于获取 JsonArray get(name)。 该方法解析类型为 String 的参数,其关联值将被返回。它返回已解析参数的关联映射的数组值。如果对象没有参数映射,则返回 null。

语法

如果指定的名称映射不可分配给 JsonArray,则抛出 ClassCastException

getJsonNumber() 方法

它用于获取 (JsonNumber)get(name)。 该方法解析类型为 String 的参数,其关联值将被返回。它返回已解析参数的关联映射的数字值。如果对象没有参数映射,则返回 null。

语法

如果指定的名称映射不可分配给 JsonNumber,则抛出 ClassCastException

getJsonObject() 方法

它用于获取 (JsonObject)get(name)。 该方法解析类型为 String 的参数,其关联值将被返回。它返回已解析参数的关联映射的对象。如果对象没有参数映射,则返回 null。

语法

如果指定的名称映射不可分配给 JsonObject,则抛出 ClassCastException

getJsonString() 方法

它用于获取 (JsonString)get(name)。 该方法解析类型为 String 的参数,其关联值将被返回。它返回已解析参数的关联映射的 String 值。如果对象没有参数映射,则返回 null。

语法

如果指定的名称映射不可分配给 JsonString,则抛出 ClassCastException

getString() 方法

它用于获取 getJsonString(name).getString()。 该方法解析类型为 String 的参数,其关联值将被作为 String 返回。它返回已解析参数的关联映射的 String 值。

语法

如果指定的名称没有映射,则抛出 NullPointerException。如果指定的名称映射不可分配给 JsonString,则还抛出 ClassCastException

让我们创建一个程序,并使用上述方法从 JSON 对象中获取值。

注意:在使用以下代码之前,请下载 json-20200518.jar 文件并将其添加到您的项目中。

How to Get Value from JSON Object in Java Example

GetValueFromJsonExample.java

输出

How to Get Value from JSON Object in Java Example

让我们使用另一个 JSON 库并从 JSONObject 获取值。在下面的程序中,我们使用了 json-simple 库。在使用以下程序之前,请下载 json-simple-1.1.1.jar 文件并将其添加到您的项目中。

How to Get Value from JSON Object in Java Example

GetValueFromJsonObjectExample.java

输出

How to Get Value from JSON Object in Java Example