JSON嵌套对象发布到node.js服务器?

时间:2012-05-03 14:20:12

标签: json node.js

我想通过JSON将对象POST发送到node.js服务器。

Object结构是嵌套的,并且永远不会成功在node.js服务器站点上正确接收和解析。


EDIT2

我找到了解决方案:请参阅答案部分......


修改

我找到了

     console.log(body);

本身输出

VAL1 =你好&安培; VAL2%5Bval3%5D =世界

// = {“val1”:“你好”,“val2 [val3]”:“世界”}

我们采用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 ChromeDevelopersTool

对象

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”: “你好”, “val2的[VAL3]”: “世界”}

{VAL1: “你好”,val2的:{VAL3: “世界”}}

这很难看,我不知道为什么会这样。


问题2

我永远无法获得{val3:“world”}

的console.log(json.val3); //未定义


任何人都可以解释,如何将嵌套的JSON发布到node.js服务器?

感谢。

1 个答案:

答案 0 :(得分:0)

不要在jQuery Ajax上使用JSON类型的数据,而是使用Stringified JSON

我创建了一个WIKI

http://code.google.com/p/kenokabe/wiki/nestedJSONproblem