jamshaidiqbal120 Posted December 24, 2020 Share Posted December 24, 2020 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now