Hi bob_41, I could find two ways: 1. Through SQL I added a table and inserted the data you have given in your question and flattened out the result so that you can just refer to the fields in your report: (Including the create & insert statements here for clarity) create table json_test( jdoc JSON ); insert into json_test values ('{"23": {"name": "Part Reference", "type": "Text", "value": "R24,R52,R53,R58,R59"}, "24": {"name": "Do Not Install", "type": "Text", "value": "DNI"}}') select MAX(case when row_num =1 then res END )as col1, MAX(case when row_num =2 then res END ) as col2 from ( select ROW_NUMBER() over () as row_num ,r.res from academy.json_test t join json_table(t.jdoc, '$.*' columns ( res Varchar(100) path '$.value')) r ) as a With the select, you will get col1 and col2 as fields which correspond to the above value fields in the JSON and you can use that in your report. 2. Using a Variable Create a Variable (say Variable_1) with No Calculation and set the expression to : Arrays.asList($F{jsonString}.split(", ")).stream().map(token -> (String) token.replaceAll("[\{\}]+","")) .filter(token -> token.startsWith(""value"")) .map(token -> token.replaceFirst(""value": ","").replaceAll(""","")) .collect(java.util.stream.Collectors.toList()) $F{jsonString} - is the field from the SQL that has the JSON string This will return a collection of values and you can get each one using $V{Variable_1}.get( 0 ) or $V{Variable_1}.get( 1 ) Hope this helps.