[英]How to access json value by key value in freemarker?
有没有办法通过freemarker中的键值访问json
值? json 看起来像这样:
{"className":"Lorem Ipsum","classPK":"52293","title":"Test Name"}
我需要这些值才能在方法中使用它们:
localService.method(className, classPK);
我试图用${json.getData()["classPK"]}
直接访问它们。 怎么做?
您可以使用${variableName.key}
。 在您的情况下<#assign data="Your JSON Goes here"?eval>
然后在使用${data.className}
访问之后。
这里对包含 JSON 的字符串数据使用?eval
,我们将其转换为 Freemarker littral。
有关更多信息,请访问以下链接:- https://docs.akana.com/ag/processes/process_transform_freemarker.htm https://liferay.dev/blogs/-/blogs/working-with-json-in-freemarker
您可以使用 ?eval 或 jsonFactoryUtil(如果可用)。 例子:
<#assign customFieldJson = customField.getData()?eval />
${customFieldJson.className}
${customFieldJson.classPK}
${customFieldJson.title}
或者
<#assign customFieldJson = jsonFactoryUtil.createJSONObject(customField.getData()) />
${customFieldJson.getString("className")}
${customFieldJson.getString("classPK")}
${customFieldJson.getString("title")}
我不知道哪个“更好”,但我更喜欢 eval...
将json赋值给这个变量,尝试这样访问
<#-- 来自 JSON 文字的 Freemarker 哈希 --> <#assign getData= {"className":"Lorem Ipsum","classPK":"52293","title":"Test Name"} >
${getData.className} ${getData.classPK}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.