Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

how to store multifield nodes as JSON in aem 6.5 (coral 3) ?

Avatar

Level 2
 
6 Replies

Avatar

Community Advisor

Hi,

 

Try adding composite as false 

 

Screen Shot 2022-04-23 at 8.45.18 AM.png

Avatar

Level 2

Hey thanks for reply but that way it's will be stored as an array like comma separated 

Avatar

Community Advisor

Hi,

OOTB the coral multifield stoored values as node. You have to write your own logic to store the multifield as json but you can read it from Node as well. YOu can check some old thread with the same queries.

https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/coral-multifield-6-4-touch...

 



Arun Patidar

Avatar

Level 2

I have fixed by jqury dialog logic i will capture multifield data and concert into json and store into text field please refer below code 

 


console.log("client multifields....");
(function(document, $, ns) {
"use strict";
$(document).on("click", ".cq-dialog-submit", function(e) {
var attributelist =$("input[name='./fname']").attr("data-attribute1").split(",");

console.log("attributelist"+attributelist.size);
var parentlabel = "./"+ $("input[name='./fname']").attr("data-parentlabel");


var $formminmax = $(this).closest("form.foundation-form");

var field = $formminmax.find("[data-granite-coral-multifield-name='"+parentlabel+"']");
var totalLinkCount = field.children('coral-multifield-item').length;
var test = field.children('coral-Form-fieldwrapper').name;


var jsonObj = [];

for (var i = 0; i < totalLinkCount; i++) {
var item = {}
console.log("pp"+'itemXX'.replace('XX',i));

for (var j=0; j < attributelist.length; j++) {
var itemname = './bookdetailswithmap/item'+i+'/./'+attributelist[j];
item [attributelist[j]] =field.find($("[name='"+itemname+"']")[0]).val();
}
jsonObj.push(item);
}
var obj2 = {"parentlabel": jsonObj };
snippet.log(obj2.personalization.name);
$('.fnameclass').val(JSON.stringify(jsonObj));
});
})(document, Granite.$, Granite.author);

Avatar

Level 1

Thanks!, this is great help, Can you please share the component structure as well.