如何保留查询string中的types

我试图放在一起会消耗JSON数据的API,我有保留variablestypes的问题。

警告:我正在使用Node.js

鉴于数据:

{ id: "string", data: [ {input: [0,1,0], output: [1,1]}, {input: [1,0,0], output: [1,0]} ] } 

当我做了一个jQuery的Ajax后请求与该数据它被转移为:

 data[0][input][] 0 data[0][input][] 1 data[0][input][] 0 data[0][output][] 1 data[0][output][] 1 data[1][input][] 1 data[1][input][] 0 data[1][input][] 0 data[1][output][] 1 data[1][output][] 0 id string 

或者: id=string&data%5B0%5D%5Binput%5D%5B%5D=0&data%5B0%5D%5Binput%5D%5B%5D=1&data%5B0%5D%5Binput%5D%5B%5D=0&data%5B0%5D%5Boutput%5D%5B%5D=1&data%5B0%5D%5Boutput%5D%5B%5D=1&data%5B1%5D%5Binput%5D%5B%5D=1&data%5B1%5D%5Binput%5D%5B%5D=0&data%5B1%5D%5Binput%5D%5B%5D=0&data%5B1%5D%5Boutput%5D%5B%5D=1&data%5B1%5D%5Boutput%5D%5B%5D=0

我需要能够做的是在服务器端解码数据,但是我的数据在数据中的所有值都被转换为string

有没有一种技术来保存一个值的types,即:“string”或“int”等?

我目前正在使用npm上的qs模块来parsing我的POST请求正文。

JQuery将通过AJAX请求的data选项传入的任何对象序列化为application/x-www-form-urlencoded格式(就像查询string一样)。 你想要什么是JSON.stringify()你的对象和传递结果string作为data ,以及设置Content-Type作为以前的答案提到。

请记住, dataType选项指定了jQuery如何处理对请求的响应 ,而不是如何对请求的正文进行编码(我已经被这个文件烧掉了)。

由于它是一个JSON服务器,所以在POST请求中设置Content-Type:application / json,所以你将parsing一个对象而不是一个string。 该对象将保留数据types。 在服务器上使用req.is('application / json')来确保请求的types是'application / json'。

这是一个工作的解决scheme,希望它有帮助。

 $.ajax({ type: 'POST', data: JSON.stringify(data), contentType: 'application/json', url: 'http://localhost:3000/endpoint', success: function(data) { //TODO: do something with data } });