在 Liferay Portlet 中创建 JSONObject 和 JSONArray

Posted

技术标签:

【中文标题】在 Liferay Portlet 中创建 JSONObject 和 JSONArray【英文标题】:create JSONObject and JSONArray in Liferay Portlet 【发布时间】:2020-05-10 18:58:03 【问题描述】:

在 Liferay portlet 中创建JSONObjectJSONArray 的最佳选择是什么?

你不能做Java简单的方法:

JSONObject json = new JSONObject();
JSONArray arrayJson = new JSONArray();

错误:

无法实例化 JSONObject 类型

无法实例化类型 JSONArray


尝试使用JSONFactoryUtil,它可以工作,但已弃用。

com.liferay.util.json.JSONFactoryUtil

JSONObject json = JSONFactoryUtil.createJSONObject();
JSONArray arrayJson = JSONFactoryUtil.createJSONArray();

【问题讨论】:

JSONFactoryUtil.createJSONObject() 已弃用?这是目前唯一且正确的方法 【参考方案1】:

JSONFactoryUtil.createJSONObject()JSONFactoryUtil.createJSONArray() 在 Liferay 6.x 和 Liferay 7.x 中都没有被弃用。

如果还想使用new JSONObject()new JSONArray(),可以导入org.json。

Maven:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20190722</version>
</dependency>

Gradle:

compileOnly group: 'org.json', name: 'json', version: '20190722'

如果此版本不适合您,请尝试其他版本。

【讨论】:

谢谢!我使用的是com.liferay.util.json.JSONFactoryUtil 包,它已被弃用但被com.liferay.portal.kernel.json.JSONFactoryUtil 取代。 Source: com.liferay.util.json.JSONFactoryUtil。感谢您的回答,我意识到了。

以上是关于在 Liferay Portlet 中创建 JSONObject 和 JSONArray的主要内容,如果未能解决你的问题,请参考以下文章

从 liferay 导出/导入页面的自动方式

如何以编程方式创建 Liferay 7 Web 内容模板?

使用 liferay 和 icefaces 共享 Portlet 数据

Liferay 7 portlet中所有能在@Component中修改的属性

如何从 Liferay 7 取消部署 portlet?

如何使用管理员 Liferay 将我的自定义 portlet 拖/添加到 liferay 页面?