如何在adobe CQ中创建一个客户json响应?

时间:2016-05-19 13:33:21

标签: json adobe aem

我希望能够返回带有一些特定动态数据的json响应。我很难理解这样做的步骤。这不是用于获取CQ自动执行的节点详细信息。

目标是使用类似的请求返回json响应 HTTP:///def/getMyInfo.json

2 个答案:

答案 0 :(得分:1)

如果您想在组件级别执行此操作,则可以通过在组件中创建JSON.jsp来实现。

在jsp中你会有类似

的东西
<%@ page import="org.apache.sling.commons.json.io.*" %>
<%@include file="/libs/foundation/global.jsp" %>
<% 
    response.setContentType("application/json");
    response.setCharacterEncoding("utf-8");

    JSONWriter writer = new JSONWriter(response.getWriter());
    writer.object();
    writer.key("Name");
    writer.value("English");
    writer.key("Code");
    writer.value("en");
    writer.endObject();
%>

然后如果你想访问json,你可以访问它 http://localhost:4502/content/geometrixx/en/jcr:content/mycomponentinstance.json

如果您希望它更通用,可以将JSON.jsp添加到页面组件而不是普通组件,然后您需要调用 而是http://localhost:4502/content/geometrixx/en/jcr:content.json

答案 1 :(得分:0)

我想更像这样访问它 - 没有jcr:content

https://github.com/git-for-windows/git/releases/download/v2.8.3.windows.1/Git-2.8.3-32-bit.exe

我创建了一个mycomponentinstance页面,它有一个sling资源组件mycomponentinstance。该组件有一个文件mycomponentinstance.json.jsp,带有我的json响应。它还有Page.json,我认为这是让它识别出来的关键。