Solved
Read json file from DAM
Hello Team,
I wanted to read json file from DAM location in my sling model. Can, someone help me with a valid, performance efficient logic?
Thanks in advance.
Hello Team,
I wanted to read json file from DAM location in my sling model. Can, someone help me with a valid, performance efficient logic?
Thanks in advance.
Try with this ChatGpt generated code snippet, please test and validate this before you use this for production
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.models.annotations.Model;
import org.apache.sling.models.annotations.injectorspecific.Self;
import org.apache.sling.models.annotations.injectorspecific.ScriptVariable;
import org.apache.sling.models.annotations.DefaultInjectionStrategy;
import org.apache.sling.models.annotations.Optional;
import com.day.cq.dam.api.Asset;
import com.day.cq.dam.api.DamConstants;
import org.apache.commons.io.IOUtils;
import javax.annotation.PostConstruct;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
@Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
public class JsonFromDamModel {
@Self
private Resource resource;
@ScriptVariable
private ResourceResolver resourceResolver;
private JsonObject jsonObject;
@PostConstruct
protected void init() {
String damPath = "/content/dam/path/to/your/jsonfile.json"; // Path to your JSON file in DAM
Resource jsonResource = resourceResolver.getResource(damPath);
if (jsonResource != null && jsonResource.isResourceType(DamConstants.NT_DAM_ASSET)) {
Asset asset = jsonResource.adaptTo(Asset.class);
if (asset != null) {
Resource original = asset.getOriginal();
if (original != null) {
try (InputStream is = original.adaptTo(InputStream.class)) {
if (is != null) {
String jsonContent = IOUtils.toString(is, StandardCharsets.UTF_8);
jsonObject = JsonParser.parseString(jsonContent).getAsJsonObject();
}
} catch (Exception e) {
// Handle the exception appropriately
e.printStackTrace();
}
}
}
}
}
public JsonObject getJsonObject() {
return jsonObject;
}
}
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.