如果前端请求获取到的数据格式是jsonp,那么我们就要转换成json才能进行解析。

datas为jsonp数据格式的字符串变量,如:jsonp({"a":"1234","b":9999})

function jsonpToJson (datas) {
  let jsonData = null
  // 下面是对获取到的数据进行处理,把jsonp格式的数据处理成json格式的数据
  if (typeof datas === 'string') {            
    // 返回的是jsonp类型的数据,所以要用正则表达式来匹配截取json数据
    const reg = /^\w+\((\{[^()]+\})\)$/
    const matches = datas.match(reg)
    // matches匹配到的是数组,数组第一个是所有正则表达式匹配的字符串,第二个是第一个小括号匹配到的字符串
    if (matches) {
      jsonData = JSON.parse(matches[1])
    }
  }
  return jsonData
}
const data = jsonpToJson('jsonp({ "a": "1234", "b": 9999 })')
console.log(data)

最终得到的jsonData就是json格式了,如:{"a":"1234","b":9999}

GitHub 加速计划 / js / json
18
5
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:3 个月前 )
2d42229f * Support BSON uint64 de/serialization Signed-off-by: Michael Valladolid <mikevalladolid@gmail.com> * Treat 0x11 as uint64 and not timestamp specific Signed-off-by: Michael Valladolid <mikevalladolid@gmail.com> --------- Signed-off-by: Michael Valladolid <mikevalladolid@gmail.com> 4 天前
1809b3d8 Signed-off-by: Niels Lohmann <mail@nlohmann.me> 5 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐