Javascript/Json:对象的对象转换为关联数组
Posted
技术标签:
【中文标题】Javascript/Json:对象的对象转换为关联数组【英文标题】:Javascript/Json : Object of object converted to associative array 【发布时间】:2016-01-11 13:18:13 【问题描述】:使用 AngularJS,我将以下数据发送到我的 API:
$http.post('/api/test', credits: value:"100", action:"test" );
在我的 nodeJS (+Express) 后端,我得到以下数据:
为什么我的帖子数据被转换为关联数组?
我想要的是:
credits : Object
action : "test"
velue : "100"
【问题讨论】:
我建议使用 body-parser,npmjs.com/package/body-parser 你用的是快递吗? 是的,我使用的是 express,抱歉没有提及。 文档中有一个例子expressjs.com/api.html#req.body @davcs86 :这是否意味着我没有做任何“错误”,这是本机正文解析器的奇怪行为? 【参考方案1】:使用body-parser 包,选项“扩展”为真,
app.use(bodyParser.urlencoded( extended: true ));
例子:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded( extended: true ));
app.post('/api/test',function (req, res)
var data = req.body;
console.log(data);
console.log(data.credits);
console.log(data.credits.value);
console.log(data.credits.action);
var result = "";
for (var key in data.credits)
if (data.credits.hasOwnProperty(key))
console.log(key + " -> " + data.credits[key]);
result += key + " -> " + data.credits[key];
res.send(result);
res.end();
);
app.listen(process.env.PORT || 3000, process.env.IP || "0.0.0.0", function()
);
控制台中的结果
credits: value: '100', action: 'test'
value: '100', action: 'test'
100
test
value -> 100
action -> test
【讨论】:
以上是关于Javascript/Json:对象的对象转换为关联数组的主要内容,如果未能解决你的问题,请参考以下文章