JSON的问题
思路
通过前端构建一个对象taskObj
,通过$.ajax调用node处理后返回
进坑过程
先是遇到了413长度过长问题,google了一下,加入了段代码
app.use(bodyParser.urlencoded({
extended: false,
parameterLimit: 10000,
limit: 1024 * 1024 * 10
}));
app.use(bodyParser.json({
extended: false,
parameterLimit: 10000,
limit: 1024 * 1024 * 10
}));
然后遇到问题
前端js代码:
window.myobj1 = taskObj;
$.ajax({
type: "post",
url:serverip+"/newWeekTask",
async:false,
data:JSON.stringify(taskObj),
//dataType: 'json',
success:function(result){
window.myobj2 = JSON.parse(result);
if(result._id!=""){
alert("保存成功");
nav("planStart");
}else{
alert("保存失败");
}
}
});
后端node代码:
app.post("/newWeekTask",function(req,res,next){
var taskinfo = JSON.parse(JSON.stringify(req.body));
// var taskinfo = JSON.parse(req.body); //这样写会报错
res.send(JSON.stringify(taskinfo));
});
调用结果
正常来说应该两个对象是完全一样的,现在后端解析不出来对象的属性。。。求喷求指导
4 回复
myobj1是普通对象,myobj2是json对象(代表的是数据),两码事。
@hanyuzhou2006 JSON.stringify()操作一个普通对象会变成啥? 有办法提取到普通对象吗?
@CarlosRen JSON.stringify()–>字符串,JSON.parse–>JSON对象。没有提取一说,JSON对象转普通对象,按照属性一个个赋值到new出来的普通对象中呗。
//var taskinfo = JSON.parse(JSON.stringify(req.body));
var taskinfo = req.body;
你先转成字符串,然后又parse成Object!