杰克逊图书馆里有Sling JsonItemWriter的替代品吗



我正在寻找从给定的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

最新更新