获取 .model.json 作为字符串
Get .model.json as String
我想知道是否有一种简单的方法可以使用 AEM 中的 sling 内容导出器的结果获取字符串。
在我当前的用例中,我需要组件的 .model.json 输出内容到组件的 htl 文件中,发送额外的请求显然不是一个好主意。
关于如何获取数据的任何提示?
经过一些阅读和试验,我找到了一种方法:
在您的 pom 中添加对以下包的依赖项:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
然后在您的模型中创建一个执行序列化的方法:
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public String getJson() {
ObjectMapper objectMapper = new ObjectMapper();
String tStr = "";
try {
tStr = objectMapper.writeValueAsString(this);
logger.error(tStr);
}
catch (JsonProcessingException ex) {
logger.error("Cannot do it: {}", ex.getMessage());
}
return tStr;
}
现在您可以从 HTL 脚本或任何其他可以访问该模型的代码片段中调用此方法。
我想知道是否有一种简单的方法可以使用 AEM 中的 sling 内容导出器的结果获取字符串。 在我当前的用例中,我需要组件的 .model.json 输出内容到组件的 htl 文件中,发送额外的请求显然不是一个好主意。 关于如何获取数据的任何提示?
经过一些阅读和试验,我找到了一种方法:
在您的 pom 中添加对以下包的依赖项:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
然后在您的模型中创建一个执行序列化的方法:
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public String getJson() {
ObjectMapper objectMapper = new ObjectMapper();
String tStr = "";
try {
tStr = objectMapper.writeValueAsString(this);
logger.error(tStr);
}
catch (JsonProcessingException ex) {
logger.error("Cannot do it: {}", ex.getMessage());
}
return tStr;
}
现在您可以从 HTL 脚本或任何其他可以访问该模型的代码片段中调用此方法。