March 22, 2020
Estimated Post Reading Time ~

AEM 6.4 Content Fragment output as JSON

AEM Content Fragments can be accessed through the JSON file URL.

Why we need JSON Formats?
Content Fragments are not just for web pages. A Content Fragment is made available to external applications through JSON format delivery methods. These applications could be,
· Single Page Applications
· Native Mobile Applications
· other channels and touch-points external to AEM

AEM 6.4 core components having the capability to export its data to JSON format. This structured content can then be used to deliver to cross channels other than AEM pages.

Difference between Content Fragment & Experience Fragment
The major difference between Content Fragment & Experience Fragment is that Content Fragment is pure content, without design and layout, but Experience Fragments are fully laid out content - a fragment/portion of a web page.

There are 2 types of content fragments
Simple fragments: Which does not have any predefined structure(only text, and images). A simple Fragment template is a supporting element for this.

Fragments that contain structured content: This is based on a content fragment model. This model will give a defined structure.

How do we generate the JSON format of a Content Fragment?
AEM 6.4 version also supports JSON Exporter with Content Fragment Core Components. Using this AEM JSON exporter, we can deliver the contents of an AEM page in the JSON data model format. This can then be consumed by any third party applications other than AEM.

JSON Exporter is supported by suffixing a url with '.model.json'

Access JSON Format of a Content Fragment
Say we have created 'My Simple Fragment(my-simple-fragment)' Content Fragment,

We can see the complete content using url,
http://localhost:4502/content/dam/my-simple-fragment/_jcr_content/model.json

As you see the output
{
"jcr:primaryType": "nt:unstructured",
"jcr:title": "Simple Fragment",
"version": 2,
"jcr:description": "A simple fragment, containing one single element and no predefined variations",
"precreateElements": true
}

Accessing the JSON output of a Content Fragment authored on a page.

Step1: Access the page JSON
Now I have authored my previously created 'My Simple Fragment(my-simple-fragment)' in We-retail site. (/content/we-retail/language-masters/en/men.html)

Its JSON output can be access through url,
http://localhost:4502/content/we-retail/language-masters/en/men.model.json

Step2: Access the Content Fragment JSON
We can see the content fragment on this page as shown.


To get the authored 'Content Fragment JSON', access the '.model.json' url of the content fragment as below,

http://localhost:4502/content/we-retail/language-masters/en/men/jcr:content/root/responsivegrid/contentfragment_1655772226.model.json

As you see the JSON will have all elements including variations created/authored.



By aem4beginner

No comments:

Post a Comment

If you have any doubts or questions, please let us know.