我想通过JSON将一个对象POST到node.js服务器。JSON嵌套对象发布到node.js服务器?
对象结构是嵌套的,并且从未成功地在node.js服务器站点上正确接收和解析。
EDIT2
我找到了解决办法:一看便知节...
编辑
我发现
console.log(body);
本身输出
VAL1 =你好& VAL2%5Bval3%5D =世界
// = { “VAL1”: “你好”, “val2的[VAL3]”: “世界”}
weired JSON方式
client.js
var data ={val1:"hello",val2:{val3:"world"}};
console.log(data); // -> *1
$.ajax({
url:"/",
type:"POST",
dataType: 'json',
data:data,
success:function (res)
{
resHandler(res);
}
});
* 1 ChromeDevel opersTool
对象
VAL1: “你好”
VAL2:对象
VAL3: “世界”
server.js
var onreq = function (req, res)
{
if(req.method == 'POST')
{
var body = '';
req.on('data', function (data)
{
body += data;
});
req.on('end', function()
{
var json = qs.parse(body);
console.log(json.val1); //hello
console.log(json.val2); //undefined
console.log(json.val3); //undefined
console.log(JSON.stringify(json));
//{"val1":"hello","val2[val3]":"world"}
});
}
我明白
val2的[VAL3] 是 val2.val3
然而,
问题1
JSON.stringify打印出
{“VAL1 “:”hello“,”val2 [val3]“:”world“}
不
{VAL1: “你好”,值2:{VAL3: “世界”}}
它的丑陋,我不知道为什么它是这样的。
问题2
我永远无法得到{VAL3: “世界”}
的console.log(json.val3); // undefined
任何人都可以解释,我该如何将嵌套的JSON发布到node.js服务器?
谢谢。
不使用'qs.parse'使用'JSON.parse' -.- – Raynos
'JSON.stringify'产生'“{”val1“:”hello“,”val2“:{”val3“:”world“}}”'对我来说这是正确的 – hvgotcodes
我已经尝试过JSON.parse包括替换qs.parse在内的地方。在这种情况下,输出是> undefined >找到异常:意外令牌v –