问题描述
这个问题:How to parse JSON in Java 有几个答案需要包括 3rd 方库,包括 GSON、org.json 和 Jackson。
我正在使用 Adobe 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>