java - 是否有将 json 转换为对象的 java 11 本机方式?
问题描述
这个问题:How to parse JSON in Java有几个答案需要包括第三方库,包括 GSON、org.json 和 Jackson。
我正在使用 Adobe AEM,众所周知,它不能包含 3rd 方库,因此我尝试使用标准 Java 11 进行 REST API 调用。Java 11 具有 HTTPClient 类,它将从响应中给我 JSON。
现在我需要将 Json 转换为所需的 java 对象。
例如,我有一个带有姓名和年龄字段的 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>
推荐阅读
- oauth-2.0 - 如何在 Logic App 的 HTTP 连接器中使用 Oauth 2.0 授权?
- flutter - 使用 Navigator 2.0 时关于第一条路线的 `maybePop` 和 `WillPopScope` 的行为
- r - 为条形图翻转ggplot y轴?
- c# - 代码似乎在 Parallel.For 循环完成之前继续前进
- python - 是否可以使用 Python 禁用 chrome 中的窗口关闭按钮?
- javascript - 如何在私有包 npm 中安装公共包
- wordpress - 谷歌搜索图标显示 wordpress 图标
- c - 尝试在 Visual Studio 2019 中编译程序时的 LNK2005 和 LNK1169
- php - 为什么我的 Symfony 路由被其他路由覆盖?
- twilio - Twilio 客户端未收到传入事件