从顶级元素解组JSON主体

时间:2018-02-06 09:48:50

标签: reactjs asp.net-web-api asp.net-core

已经有太多类似的问题,但是还有一个问题:

我遇到一个问题,即来自反应组件的我的Ajax帖子(PUT)被包含在一个包含" parent"元件。通过电线发送的数据是:

{"person":{"id":"1b982e30-c6b3-4297-dd02-08d4a8d9346a","firstname":"Phil","lastname":"Wheeler","email":"phil@email","phone":"55521234","birthdate":"0001-01-01T00:00:00","workplace":null,"hobbies":null,"other":null,"occupations":null}}

API方法非常简单:

[HttpPut("{id}")]
public void Put(Guid id, [FromBody]Client person)
{
    // Do the stuff
}

Client模型只是一个简单的类。

如果我按上述方式发布JSON数据,则属性都为空。如果我们删除父母" person"元素(即' unmarshalling' JSON请求),一切正常。

所以我有几个选择:我可以改变我的API方法来接受一种"动态"而不是强类型"客户"宾语;我可以包装我的"客户"类并接受该对象:

public class Request
{
    public Client person { get; set; }
}

或者我可以想出一种从我的脚本中解开Ajax调用的方法。目前它是这样的:

axios.put(this.props.url + '/' + value.id, { value } )
    .then(results => {
        console.info("Do some stuff");
    });

我的偏好是在我的API方法上使用强类型对象,因为我觉得它更清晰,更明显,但我 。有没有明显的遗漏,或者我应该采取阻力最小的路径并改变我的代码以适应数据?

0 个答案:

没有答案