报表中能否判断 json 数据集中指定的 key 是否存在
- 假如我的数据集格式是
{
"Document": {
"PBS": "TESTPBS",
"PRH": {
"PA01": {
"PA01A": {
"PA01AR01": "2022-06-15T10:59:27",
"PA01AI01": "2022061510592751866878"
}
}
}
}
}
- 如何判断 Document.PRH 是否包含 PA01 这个 key 呢
- 已知 isfield 这个函数只能判断最后一级的 key 是否存在 Document.PRH.PA01.PA01A.isfield(“PA01AR01”) 可以使用成功
- 但是假如中间某一层级不存在就会报错
一般来说要求 json 格式相对路径,就好比如果数据来自数据库的话,要求表结构相对固定,不然这种需求处理起来比较复杂,而且性能上如果判断较多也会略有下降。其实这种可以在源头上解决,比如 json 是由其他程序生成,可以在生成时要求结构固定。
如果实现困难,可以在脚本数据集里解析 json 串时,去判断层级,比如
A1 是 json 串 ,A2 解析,然后 A3 里可以获取 PRH 内的节点字段名,然后 if 判断下想要的字段是否在这个字段名列表内。但是如果 json 串格式不固定,这种判断会非常多,也比较费事,所以建议还是在源头固定