Expand my Community achievements bar.

Join expert-led, customer-led sessions on Adobe Experience Manager Assets on August 20th at our Skill Exchange.

Mark Solution

This conversation has been locked due to inactivity. Please create a new post.

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

AEM LinksLinkedIn

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