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

Bro*_*die 2 jcr aem

我正在尝试在Java类的上下文中将JCR节点作为JSON.我很好奇是否有一个JCR的内部API,它将Node作为JSON返回它的子节点数组.

一个很好的例子是你在浏览器中向mynode.infinity.json发出请求时得到的输出.

我看了JsonJcrNode类,它确实给了我想要的东西,但它排除了目标节点的子节点.

我想我将不得不手动获取一个节点及其子节点,然后遍历属性并手动创建我的JSONObject.我只是好奇,如果已经完成或者我还缺少任何其他可以帮助我解决这个问题的界面.

谢谢,

布罗迪

Tom*_*wek 6

JsonItemWriter class完全满足您的需求:

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();
Run Code Online (Sandbox Code Playgroud)

dump()方法允许指定递归级别(-1对于无穷大)并且可选地生成格式良好的输出(true作为最后一个参数传递).