JSON的问题
发布于 9 年前 作者 CarlosRen 3868 次浏览 最后一次编辑是 8 年前 来自 问答

思路

通过前端构建一个对象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));
});

调用结果 untitled1.png

正常来说应该两个对象是完全一样的,现在后端解析不出来对象的属性。。。求喷求指导

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!

回到顶部