我正在寻找从给定的jcr节点获得json转储的最佳替代方案。
旧代码使用了不推荐使用的sling.commons.json库。
Node node = session.getNode(“/content/pathToPage/mypage”);
StringWriter stringWriter = new StringWriter();
JsonItemWriter jsonWriter = new JsonItemWriter(null);
jsonWriter.dump(node, stringWriter, -1, true);
由于org.apache.sling.commons.json.jcr.JsonItemWriter已被弃用,在jackson库中是否有其他方法可以获取给定jcr节点的json数据?
我尝试创建给定资源的值映射,它只到达资源的第一级,并且不检索子级。
ValueMap valueMap = resource.getValueMap();
使用模型导出器API将资源转换为JSON
@Component(service = MyService.class)
public class MyService {
@Reference
private ModelExporter modelExporter;
public String getJsonFromResource() {
final Resource resource = ...;
return modelExporter.export(resource, String.class, new HashMap<>());
}
}
以下是文档:https://sling.apache.org/apidocs/sling10/org/apache/sling/models/export/spi/ModelExporter.html