如何通过Qlik Sense API将JSON元数据反序列化生成.qvf文件
Qlik Sense从JSON元数据还原生成.qvf文件的落地方案
以下两种方案均可稳定落地,可根据你的使用场景选择:
方案1:基于Qlik Engine JSON API实现(推荐,兼容性最高)
.qvf文件本身是Qlik应用的导出包,所有配置均可通过官方原生API写入,不需要依赖第三方工具,操作步骤如下:
- 调用Qlik Engine API的
CreateApp方法创建一个空白应用,获取新应用的唯一ID - 拆分你手头的JSON元数据,按模块对应到应用的加载脚本、自定义维度、自定义度量、工作表、工作表内可视化对象、数据连接配置等组成部分
- 分模块调用对应API写入配置:
- 加载脚本调用
SetScript方法,直接传入JSON中存储的脚本字符串即可 - 主数据条目分别调用
CreateDimension、CreateMeasure、CreateMasterObject方法,入参直接使用JSON中对应条目的全量定义 - 工作表调用
CreateSheet方法创建,入参匹配JSON中的工作表结构,再通过CreateObject方法把可视化对象逐个挂载到对应工作表下 - 若需要保留数据可调用
DoReload方法执行脚本加载数据,无数据需求可跳过该步骤
- 加载脚本调用
- 所有配置写入完成后调用
DoSave方法保存应用,再调用ExportApp方法即可导出为标准.qvf文件
方案2:离线构造QVF包(无需连接Qlik Sense服务)
适合不需要运行Qlik引擎的离线生成场景,操作步骤如下:
- 提前准备一个空白的.qvf模板文件,将后缀改为.zip后解压,得到QVF包的标准内部目录结构,核心包含
App.json、工作表目录、可视化对象目录、主条目配置等文件 - 将你手头的JSON元数据按解压后的文件结构拆分,替换对应文件的内容,需严格匹配Qlik官方的元数据Schema,不得修改
qInfo、qProperty等核心字段的格式和必填项 - 所有文件替换完成后,直接选中根目录下的所有文件和文件夹,用ZIP格式压缩,将压缩包后缀改为.qvf即可,注意不要压缩外层目录,否则会导致Qlik无法识别文件
注意:如果使用你找到的buildapp开源项目,可直接将元数据放入项目指定输入目录,根据你的元数据结构修改项目配置文件后执行构建命令即可,缺失的配置项可参考Qlik官方Engine API文档补全,无需额外找第三方资料。
内容的提问来源于stack exchange,提问作者shee
相关产品推荐
相关产品推荐

