写js脚本时,从上面输出的数据,给下面的模块引用;console.log() 显示传入的值为{5.0, 6.0},但下面的模块会报错 TypeError: Cannot find function match in object 。但定义一个变量,值同为 {5.0, 6.0} 就不会报错。百度无果,遂翻看类似的文章。突然想到应该是数据类型的原因, {5.0, 6.0} 长得有点像json,于是将 json 转换为字符串,转换结果为:{“x”:5.0,”y”:6.0} 。
解决方法:
方法一:使用转换函数 toString()
toString() 方法可把一个对象转换为一个字符串。json 的值传给下面的模块无法直接使用,遂转换成字符串后使用。转换后的结果和 console.log() 一样,而不是 json 的原数据。
//a为上一个模块输出的json数据,内容为:{"x":5.0,"y":6.0}
console.log(a); //输出结果为{5.0, 6.0}
a = a.toString(); //输出结果为:{5.0, 6.0}
方法二:使用 JSON.stringify()
JSON.stringify() 方法用于将 json 对象转换为字符串。转换后的结果和json原数据一样。
//a为上一个模块输出的json数据,内容为:{"x":5.0,"y":6.0}
console.log(a); //输出结果为{5.0, 6.0}
a = JSON.stringify(a); //输出结果为:{"x":5.0,"y":6.0}
方法三:直接调用json的值
如果想使用json中的值,可以直接调用json值。
//a为上一个模块输出的json数据,内容为:{"x":5.0,"y":6.0}
var x = a.x; //x类型为字符串,值为5.0
var y = a.y; //y类型为字符串,值为6.0