Expand my Community achievements bar.

Returning list of pages at given path in JSON format.

Avatar

Level 1

Hi Team,

I have a requirement where I need to return list of pages available at given path. This service should return json structure, which would return name and title of the each page.

Any help would be greatly appreciated.

Thanks in advance.

3 Replies

Avatar

Level 8

You need to iterate child pages and export in the form of JSON, if you are familiar with sling models then you can use sling model exporter, check below link

http://keysandstrokes.info/aem-code-snippets-export-page-data-as-json-format-using-sling-model-expor...

Approach 2:

Pass page path as a parameter to the servlet and in the servlet iterate child pages and using Gson convert that into JSON format. you need to Json mime type to see the output in JSON format when we request servlet

Avatar

Community Advisor

Hi,

You can try with QueryBuilder Debugger

e.g.

http://localhost:4502/bin/querybuilder.json?p.hits=selective&p.limit=-1&p.properties=jcr%3acontent%2...

http://localhost:4502/libs/cq/search/content/querydebug.html

Query

path=/content/

type=cq:Page

p.hits=selective

p.properties=jcr:content/jcr:title jcr:path

p.limit=-1



Arun Patidar

Avatar

Community Advisor

Apart from above solution I might go for below approach.

1) Send the path as parameter to your request

2) In the servlet/service , iterate the children

3) I will have a POJO like below to populate the children

public class Document {

     private String name;

     private String title;

     ....

    <getter and setter for both >

}

4) While iterating , add the name and title and form a list of this POJO .

5) Once the iteration is complete , convert the POJO to JSON using GSON API

  If you need more details do let me know

Thanks

Veena