Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.

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.