Javascript React JS-在HTTP获取中修改主体JSON
我需要修改以下方法中的“模型列表”:Javascript React JS-在HTTP获取中修改主体JSON,javascript,Javascript,我需要修改以下方法中的“模型列表”: fetch(fetchAddress, { method: 'POST', headers: { "Content-type": "application/json; charset=UTF-8" }, body: JSON.stringify(this.props.modelList) }) “modelList”生成以下JSON: {list:[{"property1":"...","property2"
fetch(fetchAddress, {
method: 'POST',
headers: {
"Content-type": "application/json; charset=UTF-8"
},
body: JSON.stringify(this.props.modelList)
})
“modelList”生成以下JSON:
{list:[{"property1":"...","property2":"...","property3":"...","property4":"..."},{"property1":"...","property2":"...","property3":"...","property4":"..."}]}
但我需要将其发送到API:
[{"property2":"...","property3":"..."},{"property2":"...","property3":"..."}]
修改数组或JSON以便发送API期望的内容的最佳方法是什么?我猜OP希望从每个对象中删除第一个属性 您可以与一起使用,然后返回具有以下内容的新对象: 请注意,
Object.fromEntries
是“非常”新的,因此您可以使用一个简单的减速机
/{list:[{“property1”:“…”,“property2”:“…”,“property3”:“,“property4”:“…”,{“property1”:“…”,“property2”:“…”,“property3”:“,“property4”:“…”}
常量建模师={
名单:[
{
财产1:1,
物业2:2,
财产3:3,
物业4:4
},
{
财产1:1,
物业2:2,
财产3:3,
物业4:4
}
]
};
const modified=modeList.list.map(obj=>{
常量[,…rest]=对象项(obj);
返回Object.fromEntries(rest);
});
//[{“property2”:“…”,“property3”:“…”},{“property2”:“…”,“property3”:“…”}]
控制台日志(修改)代码>我最终使用这一行来实现我想要的:
const modifiedModelList = this.state.modelList.map(({property1, property4, ...item}) => item)
这从数组中删除了property1和property4,现在我可以使用ModifiedModelList传递给API方法
抱歉-这可能更像是一个JS问题,而不是一个ReactJS问题。在我看来,创建一个对象解析器,将JS模型对象作为参数,然后返回API期望的对象,其中没有未使用或易受攻击的属性:
下面是一个例子:
//以对象假日为例
const holidayDataContract=(模型)=>{
返回{
Id:model.Id,
标题:model.Title,
注:model.note,
日期:model.Date,
}
}
//然后,您可以使用上面的函数来获取API所期望的对象
常量myFormObjects=[{…},{…}]
const objectToSend=myFormObjects.map(k=>holidayDataContract(k))
逻辑是什么?仅删除第一个属性?仅发送modelList.list
和JSON.stringify
it?删除“list”数组名称并精简数组中的属性,在示例中,我删除了属性1和属性4。在C#中,我会使用automapper或linq来修改这样的数组,但我不确定reactjs/js中最好的方法是什么。请注意,这不是一个完美的react问题,谢谢Ali-这看起来是一个映射对象模型的干净方法。我会用这个来代替。