Highlighted

Exposing a multifield component as json

Avatar

Avatar

vladd57498318

Avatar

vladd57498318

vladd57498318

10-10-2019

Hi,

I'm faced with a problem where I need to expose a multifield component as json in a specific way. When accessing the url of the component.model.tidy.json the json I currently get is like this:

Screenshot 2019-10-11 at 00.31.26.png

What I would like to do is to eliminate the "jcr:primaryType":"nt:unstructured" from every property but I found no way to do it without creating my custom exporter.

Here is my java class:

import org.apache.sling.api.resource.Resource;
import org.apache.sling.models.annotations.Exporter;
import org.apache.sling.models.annotations.Model;
import org.apache.sling.models.annotations.Optional;

import javax.inject.Inject;

@Exporter(name = "jackson", extensions = "json")

@Model(adaptables = Resource.class, resourceType = "/apps/wcax-core/components/content/abs-generic-list/v1/abs-generic-list")

public class AbsGenericList {

   @Inject
  @Optional
   private Resource genericlist;

  public Resource getGenericlist() { return this.genericlist; }

}

If anyone has any idea on how to get rid of that property it would be of great help.

Replies

Highlighted

Avatar

Avatar

hamidk92094312

Employee

Avatar

hamidk92094312

Employee

hamidk92094312
Employee

10-10-2019

Do you want to process the json output to eliminate the repeating property or you want to get the json output without the repeating property at the first place ?

Highlighted

Avatar

Avatar

Ankur_Khare

MVP

Avatar

Ankur_Khare

MVP

Ankur_Khare
MVP

10-10-2019

You need to customize it as per your requirement.

Highlighted

Avatar

Avatar

vladd57498318

Avatar

vladd57498318

vladd57498318

11-10-2019

Ideally, I would want to get the json output without the repeating property.