如何访问存储在jcr节点中的字符串数组?

时间:2017-09-12 12:41:19

标签: java aem jcr

在我的jcr节点中,我有密钥subpage,它保存了String[]类型的值:

{"title":"some title1", "url":"some url1"}
{"title":"some title2", "url":"some url2"}
{"title":"some title3", "url":"some url3"}
{"title":"some title4", "url":"some url4"}

如何在java中访问它?

我试过了:

ValueMap contentValueMap = resource.getValueMap();

String subpages = contentValueMap.get("subpage", String.class);

System.out.println(subpages); 

但它只打印第一个字符串:

{"title":"some title1", "url":"some url1"}

我怎样才能与其他人联系?

2 个答案:

答案 0 :(得分:4)

这应该有用 -

String[] subpages = contentValueMap.get("subpage", String[].class);

答案 1 :(得分:3)

正如awd提到的那样

String[] subPages = contentValueMap.get("subpage", String[].class);

有效并且是推荐的解决方案。这是在Sling层访问数据。只是需要深入了解并在JCR层访问,代码看起来像

Node node=resource.adaptTo(Node.class);
Value[] subPages = node.getProperty("subpage").getValues();

这对节点级操作很有帮助。但建议在Sling或AEM的更高层工作。