Aem Nodes to JsonArray | Community
Skip to main content
Level 2
March 17, 2021
Solved

Aem Nodes to JsonArray

  • March 17, 2021
  • 1 reply
  • 2870 views

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

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Rohit_Utreja

@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.

1 reply

Rohit_Utreja
Community Advisor
Rohit_UtrejaCommunity AdvisorAccepted solution
Community Advisor
March 17, 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.

Level 2
March 18, 2021
Hello, thanks for replying. But problem is this is common service where i am not aware of fields of items. It can be anything. Or can have multifield inside multifield structure