Node.js,Express,jQuery.param() – 从JSON中删除引号
我使用jQuery.param()序列化客户端上的JSON对象:
var test = {"coordinates":[[-122.610168,37.598167],[-122.288818,37.598167],[-122.288818,37.845833],[-122.610168,37.845833],[-122.610168,37.598167]]}; console.log($.param( test ));
在发出GET请求之后,在Express路由的服务器端,我访问对象:
console.log('Server received: ' + JSON.stringify(req.query.coordinates));
这将输出下面的注释每个坐标周围的引号:
Server received: [["-122.610168","37.598167"],["-122.288818","37.598167"],["-122.288818","37.845833"],["-122.610168","37.845833"],["-122.610168","37.598167"]]
我怎样才能删除报价? 我可以parsing一个string,并使用正则expression式然后parsing回JSON,但这似乎效率低下。 任何人都可以build议过程的哪一部分是添加它们,以及如何删除它们?
有些东西告诉我有一种方法可以通过使用bind
在一个单一的链接函数调用中做到这一点,但我能想到的最好的方法是:
var coords = data.map(function(arr){return arr.map(parseFloat);})
这具有非破坏性的益处(原始data
variables保持完整)。
试试像波纹pipe
var data = [["-122.610168","37.598167"],["-122.288818","37.598167"],["-122.288818","37.845833"],["-122.610168","37.845833"],["-122.610168","37.598167"]] data.forEach(function(arr){ arr[0] = +arr[0]; arr[1] = +arr[1]; }) console.log(data)// prints[[-122.610168,37.598167],[-122.288818,37.598167],[-122.288818,37.845833],[-122.610168,37.845833],[-122.610168,37.598167]]