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するにはどうすればよいですか?
ありがとう。