JSON嵌套对象发布到node.js服务器? [英] JSON nested object post to node.js server?

查看:132
本文介绍了JSON嵌套对象发布到node.js服务器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to POST an Object via JSON to node.js server.

对象结构是嵌套的,从未成功在node.js服务器站点上正确接收和解析.

The Object structure is nested, and never succeeded to receive and parse correctly on node.js server site.

EDIT2

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

I found a solution: see the answer section...

编辑

我发现了

     console.log(body);

自身输出

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

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

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

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

怪异的JSON方式

client.js

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


*1 ChromeDevelopersTool

对象

val1:你好"

val2:对象

val3:世界"

server.js

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"}
        });
    }


我了解


I understand

val2 [val3] 是 val2.val3

val2[val3] is val2.val3

但是,

问题1

JSON.stringify打印出来

JSON.stringify prints out

{"val1":你好","val2 [val3]":世界"}

{"val1":"hello","val2[val3]":"world"}

不是

{val1:你好",val2:{val3:世界"}}

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

这很丑,我不知道为什么会这样.

It's ugly, and I don't know why it's like that.

问题2

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

I can never get {val3:"world"}

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

console.log(json.val3); //undefined

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

Anyone can explain, and how can I POST a nested JSON to node.js server?

谢谢.

推荐答案

请勿在jQuery Ajax上使用JSON类型的数据,而应使用Stringified JSON

Do NOT use JSON typed data on jQuery Ajax, instead use Stringified JSON

我创建了WIKI

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

这篇关于JSON嵌套对象发布到node.js服务器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆