2012-05-03 40 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 –

回答