You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liferay 7.4 FTL模板中如何访问结构化数据?原XML方式失效

访问Liferay新版JSON格式的JournalArticle结构化字段

在Liferay迁移到JSON存储后,原XML解析方式已失效,可通过以下两种方式获取title和subtitle字段:

方法1:手动解析JSON内容

  1. 将文章内容转换为JSONObject:
JournalArticle journalArticle = assetRenderer.getArticle();
String contentJson = journalArticle.getContent();
JSONObject contentObj = JSONFactoryUtil.createJSONObject(contentJson);
  1. 根据JSON层级提取字段(以Liferay默认存储结构为例,若为自定义结构,可先打印contentJson确认路径):
// 从structuredContent的fields节点中取值
JSONObject structuredContent = contentObj.getJSONObject("structuredContent");
JSONObject fields = structuredContent.getJSONObject("fields");

String articleTitle = fields.getString("title");
String articleSubTitle = fields.getString("subtitle");

方法2:使用Liferay内置API

Liferay 7.3及以上版本提供了直接获取字段值的API,无需手动解析JSON:

JournalArticle journalArticle = assetRenderer.getArticle();
// 第一个参数为语言环境,第二个参数为字段名称
String articleTitle = journalArticle.getDisplayValue(Locale.getDefault(), "title");
String articleSubTitle = journalArticle.getDisplayValue(Locale.getDefault(), "subtitle");

调试小技巧

如果不确定JSON结构,可先打印完整内容确认字段层级:

System.out.println("文章JSON内容:" + journalArticle.getContent());

内容的提问来源于stack exchange,提问作者Kujista

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:01:06