2012-05-03 38 views
0

我想通过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服务器?

谢谢。

+0

不使用'qs.parse'使用'JSON.parse' -.- – Raynos

+0

'JSON.stringify'产生'“{”val1“:”hello“,”val2“:{”val3“:”world“}}”'对我来说这是正确的 – hvgotcodes

+0

我已经尝试过JSON.parse包括替换qs.parse在内的地方。在这种情况下,输出是> undefined >找到异常:意外令牌v –

回答