Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React JS-在HTTP获取中修改主体JSON_Javascript - Fatal编程技术网

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-这看起来是一个映射对象模型的干净方法。我会用这个来代替。