Jump to content

StackedBarChart not reading data from a sub-dataset while using JSON data source


jamshaidiqbal120

Recommended Posts

I am having the following JSON response from the API.

.."result": [        {            "taskId": 100004,            "applicationName": "Retail Bank Portal",            "taskType": "Gap",            "featureName": "Bill Pay",            "release": "5",            "date": "06:49, Aug 23, 2020",            "toJira": false,            "attackControlList": [                {                    "status": "COMPLETE",                    "attack": "manipulate request parameters to view unauthorized resources",                    "control": "implement indirect object reference to resources (e.g, account statement ID) so only these indirect references are allowed in the client request parameters"                }]           ..[/code]

I am trying to get the applicationName, featureName and taskType from the main JSON and the attack field from the array named as attackControlList. I have two datasets. 1st one is the main dataset of the report which contains the whole JSON as fields and another dataset contains the fields of the array. I am trying to read the attack field from the JSON using the sub dataset but it says that the field not found. Am I doing anything wrong? Here is my jrxml file:   

 

..<?xml version="1.0" encoding="UTF-8"?><!-- Created with Jaspersoft Studio version 6.16.0.final using JasperReports Library version 6.16.0-48579d909b7943b64690c65c71e07e0b80981928  --><jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Blank_A4" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="84388467-2247-47ee-a188-de42fda5a8bf">    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="JasperAPI"/>    <subDataset name="Dataset1" uuid="718009b5-a78c-4f75-8e8b-e31db9e39322">        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="JasperAPI"/>        <parameter name="Parameter" class="java.lang.String"/>        <parameter name="JSON_INPUT_STREAM" class="java.io.InputStream" isForPrompting="false"/>        <parameter name="net.sf.jasperreports.json.source" class="java.lang.String" isForPrompting="false"/>        <parameter name="net.sf.jasperreports.json.sources" class="java.util.List" isForPrompting="false"/>        <parameter name="net.sf.jasperreports.json.date.pattern" class="java.lang.String" isForPrompting="false"/>        <parameter name="net.sf.jasperreports.json.number.pattern" class="java.lang.String" isForPrompting="false"/>        <parameter name="JSON_LOCALE" class="java.util.Locale" isForPrompting="false"/>        <parameter name="net.sf.jasperreports.json.locale.code" class="java.lang.String" isForPrompting="false"/>        <parameter name="JSON_TIME_ZONE" class="java.util.TimeZone" isForPrompting="false"/>        <parameter name="net.sf.jasperreports.json.timezone.id" class="java.lang.String" isForPrompting="false"/>        <queryString language="JSON">            <![CDATA[result.attackControlList]]>        </queryString>        <field name="status" class="java.lang.String">            <property name="net.sf.jasperreports.json.field.expression" value="status"/>            <fieldDescription><![CDATA[status]]></fieldDescription>        </field>        <field name="attack" class="java.lang.String">            <property name="net.sf.jasperreports.json.field.expression" value="attack"/>            <fieldDescription><![CDATA[attack]]></fieldDescription>        </field>        <field name="control" class="java.lang.String">            <property name="net.sf.jasperreports.json.field.expression" value="control"/>            <fieldDescription><![CDATA[control]]></fieldDescription>        </field>    </subDataset>    <parameter name="JSON_INPUT_STREAM" class="java.io.InputStream" isForPrompting="false"/>    <parameter name="net.sf.jasperreports.json.source" class="java.lang.String" isForPrompting="false"/>    <parameter name="net.sf.jasperreports.json.sources" class="java.util.List" isForPrompting="false"/>    <parameter name="net.sf.jasperreports.json.date.pattern" class="java.lang.String" isForPrompting="false"/>    <parameter name="net.sf.jasperreports.json.number.pattern" class="java.lang.String" isForPrompting="false"/>    <parameter name="JSON_LOCALE" class="java.util.Locale" isForPrompting="false"/>    <parameter name="net.sf.jasperreports.json.locale.code" class="java.lang.String" isForPrompting="false"/>    <parameter name="JSON_TIME_ZONE" class="java.util.TimeZone" isForPrompting="false"/>    <parameter name="net.sf.jasperreports.json.timezone.id" class="java.lang.String" isForPrompting="false"/>    <queryString language="json">        <![CDATA[result]]>    </queryString>    <field name="taskId" class="java.lang.Integer">        <property name="net.sf.jasperreports.json.field.expression" value="taskId"/>        <fieldDescription><![CDATA[taskId]]></fieldDescription>    </field>    <field name="applicationName" class="java.lang.String">        <property name="net.sf.jasperreports.json.field.expression" value="applicationName"/>        <fieldDescription><![CDATA[applicationName]]></fieldDescription>    </field>    <field name="taskType" class="java.lang.String">        <property name="net.sf.jasperreports.json.field.expression" value="taskType"/>        <fieldDescription><![CDATA[taskType]]></fieldDescription>    </field>    <field name="featureName" class="java.lang.String">        <property name="net.sf.jasperreports.json.field.expression" value="featureName"/>        <fieldDescription><![CDATA[featureName]]></fieldDescription>    </field>    <field name="release" class="java.lang.String">        <property name="net.sf.jasperreports.json.field.expression" value="release"/>        <fieldDescription><![CDATA[release]]></fieldDescription>    </field>    <field name="date" class="java.lang.String">        <property name="net.sf.jasperreports.json.field.expression" value="date"/>        <fieldDescription><![CDATA[date]]></fieldDescription>    </field>    <field name="toJira" class="java.lang.String">        <property name="net.sf.jasperreports.json.field.expression" value="toJira"/>        <fieldDescription><![CDATA[toJira]]></fieldDescription>    </field>    <field name="attackControlList" class="java.lang.String">        <property name="net.sf.jasperreports.json.field.expression" value="attackControlList"/>        <fieldDescription><![CDATA[attackControlList]]></fieldDescription>    </field>    <background>        <band splitType="Stretch"/>    </background>    <summary>        <band height="220" splitType="Stretch">            <stackedBarChart>                <chart evaluationTime="Report">                    <reportElement x="0" y="0" width="555" height="220" uuid="9620de9c-81d8-4006-b931-aa67dc4cd257"/>                    <chartTitle/>                    <chartSubtitle/>                    <chartLegend/>                </chart>                <categoryDataset>                    <dataset resetType="Report">                        <datasetRun subDataset="Dataset1" uuid="e11ed00e-3e5b-489d-910d-c5016df04ba6">                            <datasetParameter name="Parameter">                                <datasetParameterExpression><![CDATA[$F{attack}]]></datasetParameterExpression>                            </datasetParameter>                            <datasetParameter name="JSON_INPUT_STREAM">                                <datasetParameterExpression><![CDATA[$P{JSON_INPUT_STREAM}]]></datasetParameterExpression>                            </datasetParameter>                            <datasetParameter name="net.sf.jasperreports.json.source">                                <datasetParameterExpression><![CDATA[$P{net.sf.jasperreports.json.source}]]></datasetParameterExpression>                            </datasetParameter>                            <datasetParameter name="net.sf.jasperreports.json.sources">                                <datasetParameterExpression><![CDATA[$P{net.sf.jasperreports.json.sources}]]></datasetParameterExpression>                            </datasetParameter>                            <datasetParameter name="net.sf.jasperreports.json.date.pattern">                                <datasetParameterExpression><![CDATA[$P{net.sf.jasperreports.json.date.pattern}]]></datasetParameterExpression>                            </datasetParameter>                            <datasetParameter name="net.sf.jasperreports.json.number.pattern">                                <datasetParameterExpression><![CDATA[$P{net.sf.jasperreports.json.number.pattern}]]></datasetParameterExpression>                            </datasetParameter>                            <datasetParameter name="JSON_LOCALE">                                <datasetParameterExpression><![CDATA[$P{JSON_LOCALE}]]></datasetParameterExpression>                            </datasetParameter>                            <datasetParameter name="net.sf.jasperreports.json.locale.code">                                <datasetParameterExpression><![CDATA[$P{net.sf.jasperreports.json.locale.code}]]></datasetParameterExpression>                            </datasetParameter>                            <datasetParameter name="JSON_TIME_ZONE">                                <datasetParameterExpression><![CDATA[$P{JSON_TIME_ZONE}]]></datasetParameterExpression>                            </datasetParameter>                            <datasetParameter name="net.sf.jasperreports.json.timezone.id">                                <datasetParameterExpression><![CDATA[$P{net.sf.jasperreports.json.timezone.id}]]></datasetParameterExpression>                            </datasetParameter>                        </datasetRun>                    </dataset>                    <categorySeries>                        <seriesExpression><![CDATA[$F{status}]]></seriesExpression>                        <categoryExpression><![CDATA[$F{attack}]]></categoryExpression>                        <valueExpression><![CDATA[0]]></valueExpression>                    </categorySeries>                </categoryDataset>                <barPlot>                    <plot/>                    <itemLabel/>                    <categoryAxisFormat>                        <axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>                    </categoryAxisFormat>                    <valueAxisFormat>                        <axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>                    </valueAxisFormat>                </barPlot>            </stackedBarChart>        </band>    </summary></jasperReport>..[/code]

 

Link to comment
Share on other sites

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...