0

JSON経由でnode.jsサーバーにオブジェクトをPOSTしたい。

オブジェクト構造はネストされており、node.jsサーバーサイトで正しく受信して解析することに成功することはありません。


EDIT2

私は解決策を見つけました:答えのセクションを見てください...


編集

見つけた

     console.log(body);

それ自体の出力

val1 = hello&val2%5Bval3%5D = world

// = {"val1": "hello"、 "val2 [val3]": "world"}

奇妙な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": "hello"、 "val2 [val3]": "world"}

いいえ

{val1: "hello"、val2:{val3: "world"}}

それは醜いです、そして私はそれがそのようなものである理由がわかりません。


問題2

{val3:"world"}を取得することはできません

console.log(json.val3); //未定義


誰でも説明できます。ネストされたJSONをnode.jsサーバーにPOSTするにはどうすればよいですか?

ありがとう。

4

1 に答える 1

0

jQuery AjaxでJSON型のデータを使用せず、代わりに文字列化されたJSONを使用してください

WIKIを作成しました

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

于 2012-05-04T05:43:36.980 に答える