Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

How to convert string into JSON object in jelly script?

vimal11592
Tera Expert

Hi,

I am trying to read the table data using GlideRecord in the jelly script.GlideRecord query gives us data as in string format but I have one field in the form that holds the data as follows:

[{"x":"y"},{"a":"b"}]

<g:evaluate var="jvar_gr" object="true">

var gr = new GlideRecord("x_14768_catalyst_bot_library");

gr.addQuery("bot_id", "test_380ee1a0");

gr.query();

gr;

</g:evaluate>

<j:while test="${jvar_gr.next()}" >

<p>${jvar_gr.getValue('params')}</p>

</j:while>

jvar_gr.getValue('params') returns data as in string but I want to convert it into JSON and loop the data and read the value of x and a.

Can someone please help me to resolve the issue.

Complete Code:

<?xml version="1.0" encoding="utf-8" ?>

<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">

<g:ui_form>

  <g:evaluate var="jvar_gr" object="true">

var gr = new GlideRecord("x_14768_catalyst_bot_library");

gr.addQuery("bot_id", "test_380ee1a0");

gr.query();

gr;

  </g:evaluate>

<j:while test="${jvar_gr.next()}" >

<p>${jvar_gr.getValue('params')}</p>

<j:forEach var="jvar_param" items="${jvar_gr.getValue('params')}">

------ READ THE VALUES   of A and X----

</j:forEach>

</j:while>

</g:ui_form>

</j:jelly>

1 ACCEPTED SOLUTION

Justin Abbott
Giga Guru

Could you use JSON.parse() to convert your string to a JSON object?


View solution in original post

6 REPLIES 6

Justin Abbott
Giga Guru

Could you use JSON.parse() to convert your string to a JSON object?


Hi Justin,



Thanks for the reply.I have tried doing the following :



<j:while test="${jvar_gr.next()}" >


<p>${jvar_gr.getValue('params')}</p>



<g:evaluate>


        var data = JSON.parse(${jvar_gr.getValue('params')})


</g:evaluate>



<j:forEach var="jvar_param" items="${data}">


------ READ THE VALUES   of A and X----


</j:forEach>


</j:while>



It didn't work.Can you please suggest if there are any changes in this.



Thanks,


Vimal


Try something like this, maybe.



<j:while test="${jvar_gr.next()}" >


      <p>${jvar_gr.getValue('params')}</p>


      <g:evaluate var="jvar_obj" object="true">


              var obj = JSON.parse(gr.getValue('params'));


              obj;


      </g:evaluate>


      ${jvar_obj.a}


      <br />


      ${jvar_obj.x}


</j:while>


Hi Justin



Thank you so much.I was struggling from couple of days to fix this.



I have tried the code and it worked.



code:



<j:while test="${jvar_gr.next()}" >


      <g:evaluate var="jvar_obj" object="true">


              var obj = JSON.parse(gr.getValue('params'));


              obj;


      </g:evaluate>


<j:forEach var="jvar_param" items="${obj}">


<g:evaluate jelly="true" object="true">


var botparam = jelly.jvar_param.label;


var botName = jelly.jvar_param.name;


</g:evaluate>


${botparam}


</j:forEach>


</j:while>



Thanks,


Vimal