我有基于csv数据源的jrxml文件 . 该csv文件中只有一列包含json字符串 .
考虑以下样本,
ID NAME TAG_AND_VALUES
1 test1 { "caseID" : "1200", "CaseNumber" : 12 }
2 test2 { "caseID" : "1201" }
3 test3 { "caseID" : "1202", "CaseNumber" : 14 }
4 test4 { "caseID" : "1203", "CaseNumber" : 15 }
5 test5 { "CaseNumber" : 16, "caseID" : "1204", }
6 test6 { "caseID" : "1205", }
请注意,CaseID始终存在,但无法保证TAG_AND_VALUES的顺序,因为可以动态添加或增加TAG_AND_VALUES .
我想从每个TAG_AND_VALUES中读取每个caseID的值 .
1 回答
您可以使用JasperReports中内置的JSON数据源执行某些操作 . 请参阅下面的JRXML片段,它们使用带有子数据集的列表组件来读取JSON字符串中的值:
这种方法有两个问题:
JSON没有控制数据的来源,需要对JSON文本进行一些处理以删除尾随逗号 .
将CaseNumber字段声明为数字/整数赢得了't work, there'在JR中的问题,其中包含没有CaseNumber的记录 . 将字段保持为字符串是一种解决方法,如果需要,可以手动将其解析为数字 .