首页 > 其他分享 >axios response 返回数据,正则匹配替换里面文字,注意返回的数据可能多层嵌套的

axios response 返回数据,正则匹配替换里面文字,注意返回的数据可能多层嵌套的

时间:2023-04-22 17:01:00浏览次数:38  
标签:返回 axios const 数据 replaceData 替换 replacedData data response

  • 在做项目招标时,新切换个分支,用来竞标,大体流程类似,但其中有企业字段需要替换
  • 一个个页面替换也很麻烦,从接口返回数据上想想办法!
  • tips:返回的数据格式,各种类型,各种嵌套的可能性都有;
function replaceData(data) {
  if (typeof data === 'string') {
    // 使用正则表达式将 'apple' 替换为 'orange'
    const replacedData = data.replace(/apple/g, 'orange')
    return replacedData
  } else if (Array.isArray(data)) {
    // 如果是数组,则对数组中的每个元素递归调用 replaceData 函数
    return data.map(item => replaceData(item))
  } else if (typeof data === 'object' && data !== null) {
    // 如果是对象,则对对象中的每个属性递归调用 replaceData 函数
    const replacedData = {}
    for (const key in data) {
      const value = data[key]
      replacedData[key] = replaceData(value)
    }
    return replacedData
  } else {
    // 如果不是字符串、数组或对象,则直接返回原始数据
    return data
  }
}

axios.get('http://example.com/api/data')
  .then(response => {
    const data = response.data

    // 对数据进行匹配和替换
    const replacedData = replaceData(data)
     return replaceData;
    // 对替换后的数据进行下一步操作
    // ...
  })

在上述代码中,replaceData 是递归函数,它接受一个数据参数,判断数据类型并进行相应的处理。如果数据是字符串,则对其进行匹配和替换;如果数据是数组,则对数组中的每个元素递归调用 replaceData 函数;如果数据是对象,则对对象中的每个属性递归调用 replaceData 函数。最终,函数返回一个替换后的数据。

在实际应用中,可以根据需要添加其他判断条件和处理逻辑。但总的原则是:通过递归调用函数处理多层嵌套的数据,以实现匹配和替换。

标签:返回,axios,const,数据,replaceData,替换,replacedData,data,response
From: https://www.cnblogs.com/pansidong/p/17343421.html

相关文章

  • react18中antd的Upload组件上传头像,并且拿到服务器返回的头像的url地址在页面中显示头
    业务需求:上传头像,上传完毕后拿到头像的url,把头像展示在页面中,最终把头像url和其他用户信息一起发送给服务器 上传头像流程 导入Upload组件和图标(一个加号,一个加载中)import{Upload}from'antd';import{PlusOutlined,LoadingOutlined}from'@ant-design/ic......
  • std::initialize_list<T>作为返回值
    正常情况,我们应该返回一个vector<T>,但是呢,因为我这是嵌入式,我不想动态开辟。于是我突发其想,返回个intialize_list,在写这个代码时,我就觉得可能不正确,因为intialize_list类中没有个数。抱着试一试的心态,我还是写了这个代码。结果,果然是不正确的。原因是这样的,intialize_list实际是......
  • vue:axios异步通讯
    由于Ajax需要对dom进行频繁的操作所以这里使用axios进行替代首先放上所有代码<body><divid="vue">{{info.name}}<av-bind:href="info.url">点我</a></div><!--到入vue.js--><scriptsrc="https://cdn.jsdelivr.net/npm/......
  • Axios
    Axios介绍:基于promise网络请求,实现异步获取请求数据。(无需重新加载页面完成局部数据刷新)示例一:<!--引入Axios--><scriptsrc="https://unpkg.com/axios/dist/axios.min.js"></script>​axios.get('/user',{  params:{//传参-> '/user?id=123'  ......
  • 统一返回结果
    Result类packagecom.atguigu.yygh.common.result;importio.swagger.annotations.ApiModel;importio.swagger.annotations.ApiModelProperty;importlombok.Data;/***全局统一返回结果类*/@Data@ApiModel(value="全局统一返回结果")publicclassResult<T>......
  • Response对象-响应字符数据
    Response响应数据1.response将字符数据返回到浏览器需要两步:1.通过response对象获取字符输出流PrintWriterwriter=resp.getWriter();2.通过字符输出流写数据:writer.writer(“aaa”);案例浏览器中打印出字符/***响应字符数据:设置字符数据的响应体*/@WebServle......
  • 用C#写一个上传下载文件至OSS后返回文件路径用DES加密解密
    废话不多说,直接上代码:usingAliyun.OSS;//引入阿里云OSSSDKusingSystem;usingSystem.IO;usingSystem.Security.Cryptography;//引入.NETFramework中的加密库usingSystem.Text;publicclassOSSHelper{///<summary>///将文件上传至OSS,并使用D......
  • drf之定制返回样式SerializerMethodField与在表模型中定制
    SerializerMethodField定制返回的样式为person:{name:xxx,age:xxx}或person:[{name:xxx,age:xxx},{name:yyy,age:yyy}...]等,就可以使用到SerializerMethodField语法在序列化类中进行定义序列化字段名=serializers.SerializerMethodField()defget_序列化字段名(self......
  • Response
    1.HttpServletResponse概述:在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应response。service方法中的response的类型是ServletResponse,而doGet/doPost方法的response的类型是HttpServletResponse,HttpSe......
  • CentOS网卡无法启动返回'Failed to start LSB:Bring up/down networking.'
    装了一台虚机,配置docker服务的时候发现忘了开CPU虚拟化,关机开启后再登录,发现网卡down了,重启网卡报错。1.journalctl-ex  #查看日志,发现返回错误'FailedtostartLSB:Bringup/downnetworking.';2.vi/var/long/messages  #再查看系统日志,发现有关于NetworkManager的信......