gpt4 book ai didi

jquery - 这个 JSON 结构何时转换为所有字符串?

转载 作者:IT老高 更新时间:2023-10-28 23:01:22 31 4
gpt4 key购买 nike

我正在向我的 Node/ express 服务器发送 JSON 结构并将对象保存到数据库中。问题是我发送带有整数和 bool 值的 JSON,但所有内容都保存为字符串。

这是我的 Node/ express 代码:

var express = require('express');

var app = express();
app.enable("jsonp callback");
app.use(express.bodyParser());

// allow cross origin scripting to get data from devices directly
app.all('*', function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
});

app.post('/departures', function(req, res) {

/* I started using this to convert back to integers - but need to solve the problem
for (var i in req.body.data) {
req.body.data[i].siteid = parseInt(req.body.data[i].siteid);
}
*/
console.log('saving data '+JSON.stringify(req.body.data));
positionProvider.save(req.body.data, function(){
res.json({status:'success'});
})
});

这是我使用 jquery 发布的方式:

    var data = [{"siteid":123}];

$.ajax({
type: 'POST',
url: serverUrl + '/departures',
data: {
data: data
},
success: function(resp) {
alert('saved departure data '+JSON.stringify(data))
},
error: function(err) {
console.log('error posting to server...');
console.log(err);
}
});

jquery 端报告它发送了 {"siteid":123} 但 Node 端报告它收到了 {"siteid":"123"}。

整数在哪里转换成字符串?

最佳答案

您的数据被转换为字符串,作为从客户端发送到服务器的产物。请记住,客户端和服务器实际上并不是以 JSON 进行通信,而是以文本或二进制数据进行通信。服务器(Express?)隐式解释作为字符串发送的数据,如果您包含 content-type: application/json 请求 header ,则会将其转换为 JSON。如果您希望数据以特定格式保留,则需要在服务器上明确键入检查和转换。

TLDR(评论);不要依赖客户端发送有效数据。在将其保存到数据库之前对其进行清理。

关于jquery - 这个 JSON 结构何时转换为所有字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15468640/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com