建议直接在请求返回的钩子中去对json字符串进行统一处理
这里处理了多种情况。比如数字字符串等
这里统一将数字转换为字符串使用
具体代码如下:
var json_string = `{"price":3.099999998949999,"location":"31.1456,121.45798","id":15423456456465,"id":1,"id2":1.1,"id3":"123456789","id4":-100,"ids":[1,2222,3333],"ids2":[6666,888,999],"ids3":["123.457",13545,25.5]}`;
//第一种情况处理正则
const reg1=/(\-*\d+(?:\.\d+)?),/gi
//第二种情况处理正则
const reg2=/(\-*\d+(?:\.\d+)?)\}/gi
//第三种情况处理正则
const reg3=/(\-*\d+(?:\.\d+)?)\]/gi
//修正错误的替换结果
const reg4=/""(\-*\d+(?:\.\d+)?)"/gi
// var dataArr=json_string.match(reg1); //测试输出匹配结果
// console.log(dataArr)
var json_string=json_string.replace(reg1,`"$1",`);
var json_string=json_string.replace(reg2,`"$1"}`);
var json_string=json_string.replace(reg3,`"$1"]`);
var json_string=json_string.replace(reg4,`"$1`);
console.log(json_string)
console.log(JSON.parse(json_string))
1.支持负数
2.支持小数
3.支持,结尾的数字处理
4.支持对象中的数字处理
5.支持数组中的数字处理
测试的字符串中包含了大部分情况,一般是足够用了。不会有太大问题