如何在 AEM 中的 json 中获取布尔值和数值 OOB

Posted

技术标签:

【中文标题】如何在 AEM 中的 json 中获取布尔值和数值 OOB【英文标题】:How to get boolean and numeric value OOB in json in AEM 【发布时间】:2016-02-17 05:43:41 【问题描述】:

在页面上我有一个对话框,其中有一个数字字段。当我在此字段中设置任何值时,在 crx/de 的内容文件夹下,该值将以字符串形式出现。此外,在 infinity json 中,它仅作为字符串出现。请看下文

<Frequency
           jcr:primaryType="cq:Widget"
            allowBlank="false"
            dName="frequency"
            fieldLabel="Frequency(sec.):"
            name="./duration"
            xtype="numberfield"/>

有什么办法可以得到整数值OOB。否则,我必须在 js 或 java 代码中更改它。请提出建议。

【问题讨论】:

你能发布你的对话框定义吗? 请查看更改 【参考方案1】:

即使您指定数字字段的 xtype,AEM 也会将该值作为字符串保存在 CRX 存储库中。您将不得不使用 Typehints 来持久化不同的数据类型。参考this

这是我刚刚尝试的 xml

<Frequency
       jcr:primaryType="cq:Widget"
       allowBlank="false"
        fieldLabel="Frequency(sec.):"
        name="./duration"
        xtype="numberfield"/>
<FrequencyHint
           jcr:primaryType="cq:Widget"
            defaultValue="Long"
            name="./duration@TypeHint"
            value="Long" 
            xtype="hidden"/>

持续时间很长:

根据 sling docs,您应该能够坚持为 Boolean、Decimal、Long,也可以添加多值属性。

【讨论】:

感谢您的解决方案。我已经对此进行了测试,并且工作正常。

以上是关于如何在 AEM 中的 json 中获取布尔值和数值 OOB的主要内容,如果未能解决你的问题,请参考以下文章

JSON语法

理解JSON对象

js中json方法加载的问题

JSON文件

MySQL、XML 布尔值和整数:不正确的整数值:

JSON