Aem Nodes to JsonArray

Avatar

Avatar
Boost 5
Level 2
Kiranchonkar
Level 2

Likes

5 likes

Total Posts

13 posts

Correct reply

0 solutions
Top badges earned
Boost 5
Boost 3
Give Back 3
Give Back
Boost 1
View profile

Avatar
Boost 5
Level 2
Kiranchonkar
Level 2

Likes

5 likes

Total Posts

13 posts

Correct reply

0 solutions
Top badges earned
Boost 5
Boost 3
Give Back 3
Give Back
Boost 1
View profile
Kiranchonkar
Level 2

17-03-2021

Hi all,

 

I am using aem 6.5

I have a requirement for converting aem page nodes to json.

Previously I used jsonItemWriter.dump method which converts data directly.

But this method is deprecated.

And second thing is in multifield we get data as item0,item1 in jsonobject format.

But my requirement is to convert this multifield to JsonArray.

 

Kindly guide for same

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar
Establish
Level 4
Rohit_Utreja
Level 4

Likes

44 likes

Total Posts

45 posts

Correct reply

15 solutions
Top badges earned
Establish
Give Back 3
Give Back
Boost 5
Boost 3
View profile

Avatar
Establish
Level 4
Rohit_Utreja
Level 4

Likes

44 likes

Total Posts

45 posts

Correct reply

15 solutions
Top badges earned
Establish
Give Back 3
Give Back
Boost 5
Boost 3
View profile
Rohit_Utreja
Level 4

17-03-2021

@Kiranchonkar,

 

You can use the sling model exporter to expose the data in JSON format.

Please refer to the below URL to create the sling model export.

https://github.com/auniverseaway/sling-exporter-sample/tree/master/src/main/java/org/millr/sling

 

Now, to fetch details of multifield nodes, Please follow the below steps.

  1. Create a sling model class for the item node of multifield. E.g. if your multifield has firstName and lastName, then this sling model class(e.g. multifieldNodeModel.java)  will contain these two fields and respective getters.
  2. Create a parent sling model for the component. In this sling model, include sub sling model of the multifield node(multifieldNodeModel).

    public class componentSlingModel{
        @ChildResource
    private List<multifieldNodeModel> multifieldNodeModel;
         public List<multifieldNodeModel> getMultifieldNodeModel(){
           return multifieldNodeModel;
    }
    }


This way we can map the data of nodes to the sling model and it can be exported to the JSON format using sling model export.

Let me know if you have any questions.

Answers (0)