是否有将 json 转换为对象的 java 11 本机方法?

问题描述

这个问题:How to parse JSON in Java 有几个答案需要包括 3rd 方库,包括 GSON、org.json 和 Jackson。

我正在使用 Adob​​e AEM,这是出了名的不容忍包含 3rd 方库,因此我尝试使用标准 Java 11 进行 REST API 调用。Java 11 具有 HTTPClient 类,它将从响应中给我 JSON。

现在我需要将 Json 转换为所需的 java 对象。

例如我有一个带有 name 和 age 字段的 Person 类,并且想从 {"name":"bob","age":12}

之类的东西中获取 Person 对象

我还需要一些东西来将 Java 对象转换为 Json。

有什么建议吗?

在 java 7 中有一个叫做 JsonObject 的东西,但我找不到任何显示这种转换的例子。

解决方法

您可以使用 JavaEE 8 中引入的 JsonB

Jsonb jsonb = JsonbBuilder.create();
Person person = jsonb.fromJson(personString,Person.class);

如果您使用 maven,这里是要添加的依赖项

<!-- JSON-B API -->
<dependency>
  <groupId>javax.json.bind</groupId>
  <artifactId>javax.json.bind-api</artifactId>
  <version>1.0</version>
</dependency>

<!-- JSON-B RI -->
<dependency>
  <groupId>org.eclipse</groupId>
  <artifactId>yasson</artifactId>
  <version>1.0</version>
  <scope>runtime</scope>
</dependency>