接口数据源应用

4871
2

缱绻 数据领袖Lv6

发表于2020-8-5 15:03

楼主
本帖最后由 缱绻 于 2020-8-5 15:05 编辑

接口数据,有5个头部参数,4个body参数,配置方法:
step1:5个头部参数分别添加,头部参数属性选择“是”

step2:body参数有endPeriod、pk_corp、pk_glorgbook、startPeriod
新增参数,参数名称为“空格”;
头部参数设置为“否”;
参数默认值为{"endPeriod":"2020-06","pk_corp":"02","pk_glorgbook":"02-2018L","startPeriod":"2020-06"}

step3:获取到的数据格式大致如下

step4:通过接口数据源创建接口主题表
通过step3可以看到目前获取到的data里面的格式不符合接口主题表需要的数据格式
那么就需要脚本去进行格式的转换,转换为类似[{index : 1, name : zhao}]的son数组;
脚本如下:
  1. function getQueryJson(queryData) {
  2. queryData = JSON.parse(queryData);
  3. var array = format(queryData.data,true);
  4. parseData = JSON.parse(array);
  5. array = parseData.datas;
  6. return JSON.stringify(array);
  7. }

  8. function format(txt, compress /*是否为压缩模式*/ ) { /* 格式化JSON源码(对象转换为JSON文本) */
  9.     var indentChar = ' ';
  10.     if (/^\s*$/.test(txt)) {
  11.      alert('数据为空,无法格式化! ');
  12.      return;
  13.     }
  14.     try {
  15.      var data = eval('(' + txt + ')');
  16.     } catch (e) {
  17.      alert('数据源语法错误,格式化失败! 错误信息: ' + e.description, 'err');
  18.      return;
  19.     };
  20.     var draw = [],
  21.      last = false,
  22.      This = this,
  23.      line = compress ? '' : '\n',
  24.      nodeCount = 0,
  25.      maxDepth = 0;

  26.     var notify = function(name, value, isLast, indent /*缩进*/ , formObj) {
  27.      nodeCount++; /*节点计数*/
  28.      for (var i = 0, tab = ''; i < indent; i++) tab += indentChar; /* 缩进HTML */
  29.      tab = compress ? '' : tab; /*压缩模式忽略缩进*/
  30.      maxDepth = ++indent; /*缩进递增并记录*/
  31.      if (value && value.constructor == Array) { /*处理数组*/
  32.       draw.push(tab + (formObj ? ('"' + name + '":') : '') + '[' + line); /*缩进'[' 然后换行*/
  33.       for (var i = 0; i < value.length; i++)
  34.        notify(i, value[i], i == value.length - 1, indent, false);
  35.       draw.push(tab + ']' + (isLast ? line : (',' + line))); /*缩进']'换行,若非尾元素则添加逗号*/
  36.      } else if (value && typeof value == 'object') { /*处理对象*/
  37.       draw.push(tab + (formObj ? ('"' + name + '":') : '') + '{' + line); /*缩进'{' 然后换行*/
  38.       var len = 0,
  39.        i = 0;
  40.       for (var key in value) len++;
  41.       for (var key in value) notify(key, value[key], ++i == len, indent, true);
  42.       draw.push(tab + '}' + (isLast ? line : (',' + line))); /*缩进'}'换行,若非尾元素则添加逗号*/
  43.      } else {
  44.       if (typeof value == 'string') value = '"' + value + '"';
  45.       draw.push(tab + (formObj ? ('"' + name + '":') : '') + value + (isLast ? '' : ',') + line);
  46.      };
  47.     };
  48.     var isLast = true,
  49.      indent = 0;
  50.     notify('', data, isLast, indent, false);
  51.     return draw.join('');
  52.    }
复制代码



最近看过此主题的会员

yujb

yamaha

kxh

v笑向前走

wxw

2个回答

只看楼主

小亿 管理员

发表于2020-8-11 11:07

只看该作者

取消 关注该作者的回复

沙发

感谢分享

chenzyd 数据小白Lv1

发表于2023-4-24 22:03

只看该作者

取消 关注该作者的回复

板凳

加班找到了此方法

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号