Javascript中对象的自定义属性映射

Javascript中对象的自定义属性映射,javascript,json,object,properties,Javascript,Json,Object,Properties,我能在POST请求中发送元数据吗?我能够在POST请求中发送大量数据,但如果需要在POST方法中将数据分组并发送到RESTAPI,我是否必须在主体中操纵值 我可以这样发送: var res = { User: {}, Project: {} }; 示例: { "name": "puppetlabs-ntp", "version": "6.1.0", "author": "Puppet Inc", "summary": "Installs, configures, and m

我能在POST请求中发送元数据吗?我能够在POST请求中发送大量数据,但如果需要在POST方法中将数据分组并发送到RESTAPI,我是否必须在主体中操纵值

我可以这样发送:

var res = {
  User: {},
  Project: {}
};
示例:

{
"name": "puppetlabs-ntp",
  "version": "6.1.0",
  "author": "Puppet Inc",
  "summary": "Installs, configures, and manages the NTP service.",
  "license": "Apache-2.0",
  "source": "https://github.com/puppetlabs/puppetlabs-ntp",
  "project_page": "https://github.com/puppetlabs/puppetlabs-ntp",
  "issues_url": "https://tickets.puppetlabs.com/browse/MODULES"
} 
{
"User":{"name": "puppetlabs-ntp",
  "version": "6.1.0",
  "author": "Puppet Inc"},``
"Project":{
  "summary": "Installs, configures, and manages the NTP service.",
  "license": "Apache-2.0",
  "source": "https://github.com/puppetlabs/puppetlabs-ntp",
  "project_page": "https://github.com/puppetlabs/puppetlabs-ntp",
  "issues_url": "https://tickets.puppetlabs.com/browse/MODULES"}
}
但我需要发送如下数据:

var res = {
  User: {},
  Project: {}
};
示例:

{
"name": "puppetlabs-ntp",
  "version": "6.1.0",
  "author": "Puppet Inc",
  "summary": "Installs, configures, and manages the NTP service.",
  "license": "Apache-2.0",
  "source": "https://github.com/puppetlabs/puppetlabs-ntp",
  "project_page": "https://github.com/puppetlabs/puppetlabs-ntp",
  "issues_url": "https://tickets.puppetlabs.com/browse/MODULES"
} 
{
"User":{"name": "puppetlabs-ntp",
  "version": "6.1.0",
  "author": "Puppet Inc"},``
"Project":{
  "summary": "Installs, configures, and manages the NTP service.",
  "license": "Apache-2.0",
  "source": "https://github.com/puppetlabs/puppetlabs-ntp",
  "project_page": "https://github.com/puppetlabs/puppetlabs-ntp",
  "issues_url": "https://tickets.puppetlabs.com/browse/MODULES"}
}

如果要从当前元数据对象创建新对象,可以按如下方式初始化新对象:

var res = {
  User: {},
  Project: {}
};
然后可以使用
Object.keys()
在对象键上循环,并弹出结果对象:

Object.keys(obj).forEach(function(key) {
  if (key === "name" || key === "version" || key === "author")
    res.User[key] = obj[key];
  else
    res.Project[key] = obj[key];
});
演示:

{
"name": "puppetlabs-ntp",
  "version": "6.1.0",
  "author": "Puppet Inc",
  "summary": "Installs, configures, and manages the NTP service.",
  "license": "Apache-2.0",
  "source": "https://github.com/puppetlabs/puppetlabs-ntp",
  "project_page": "https://github.com/puppetlabs/puppetlabs-ntp",
  "issues_url": "https://tickets.puppetlabs.com/browse/MODULES"
} 
{
"User":{"name": "puppetlabs-ntp",
  "version": "6.1.0",
  "author": "Puppet Inc"},``
"Project":{
  "summary": "Installs, configures, and manages the NTP service.",
  "license": "Apache-2.0",
  "source": "https://github.com/puppetlabs/puppetlabs-ntp",
  "project_page": "https://github.com/puppetlabs/puppetlabs-ntp",
  "issues_url": "https://tickets.puppetlabs.com/browse/MODULES"}
}
var obj={
“名称”:“puppetlabs ntp”,
“版本”:“6.1.0”,
“作者”:“木偶公司”,
“摘要”:“安装、配置和管理NTP服务。”,
“许可证”:“Apache-2.0”,
“来源”:https://github.com/puppetlabs/puppetlabs-ntp",
“项目页面”:https://github.com/puppetlabs/puppetlabs-ntp",
“问题\u url”:https://tickets.puppetlabs.com/browse/MODULES"
};
var res={
用户:{},
项目:{}
};
Object.keys(obj).forEach(函数(key){
if(key==“name”| | key==“version”| | key==“author”)
res.User[key]=obj[key];
其他的
res.Project[key]=obj[key];
});

控制台日志(res)您是否尝试发送如上所示的数据?你犯了什么错误?我不认为上面的逻辑上有什么不同。如果您按照
http
库的要求将其作为
数据
传递,那么它应该能够处理它。最简单的方法是编写自定义映射器函数。然而,我不知道这与React或REST有什么关系:DJust
JSON.stringify(元数据)
,然后在控制器(服务器)中
JSON.parse(req.body.metadata)