从OSGI包中获取.json格式的JCR节点

问题描述 投票:2回答:2

我正在尝试在Java类的上下文中将JCR节点作为JSON。我很好奇,是否有用于JCR的内部API会将Node作为带有其子节点数组的JSON返回为JSON。

一个很好的例子是您从浏览器中向mynode.infinity.json发出请求所得到的输出。

我看了看JsonJcrNode类,它确实提供了我想要的东西,但它排除了目标节点的孩子。

我认为我将必须手动获取一个节点及其子节点,然后遍历属性并手动创建我的JSONObject。我只是想知道是否已经完成此操作,或者是否缺少任何其他接口可以帮助我解决此问题。

谢谢,

Brodie

aem jcr
2个回答
6
投票

JsonItemWriter类完全满足您的需求:

JsonItemWriter

Node node = session.getNode("/content/geometrixx/en/toolbar/contacts"); StringWriter stringWriter = new StringWriter(); JsonItemWriter jsonWriter = new JsonItemWriter(null); jsonWriter.dump(node, stringWriter, -1, true); String json = stringWriter.toString(); 方法允许指定递归级别(dump()为无穷大,并且可以选择生成格式正确的输出(将-1作为最后一个参数传递。]


0
投票

如Brodie在Tomek的回复评论中所建议,应使用TidyJsonItemWriter(假设您正在使用使用com.day.cq.commons软件包的项目进行工作)。现在不推荐使用JsonItemWriter。

来自Tomek的代码基本相同,只是使用TidyJsonItemWriter的实例而不是JsonItemWriter。

© www.soinside.com 2019 - 2024. All rights reserved.