首页 > 解决方案 > 是否有将 json 转换为对象的 java 11 本机方式?

问题描述

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

我正在使用 Adob​​e AEM,众所周知,它不能包含 3rd 方库,因此我尝试使用标准 Java 11 进行 REST API 调用。Java 11 具有 HTTPClient 类,它将从响应中给我 JSON。

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

例如,我有一个带有姓名和年龄字段的 Person 类,并且想从 {"name":"bob", "age":12} 之类的东西中获取一个 Person 对象

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

有什么建议么?

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

标签: javajson

解决方案


您可以使用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>

推荐阅读