我正在尝试使用 fetch 将多个对象发布到 .core 3.1 API。我已经设法将结果作为 JsonElement 接收,但我无法对其进行反序列化。
JS 数据和获取:
const users = [
{
ID: 1,
Firstname: "MyFirstname",
Lastname: "MyLastname"
},
{
ID: 2,
Firstname: "Jeff",
Lastname: "Troll"
}
];
const company = {
ID: 1,
Companyname: "Stackoverflow",
Location: "Unknown"
};
await fetch(URL, {
method: "POST",
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
users: users,
company:company
})
})
.then(response => {
response.text().then(function (text) {
alert(text);
});
});
帖子通过我的操作,我可以看到 JSON 结果,但我无法反序列化它。
我的行动:
[HttpPost]
public async Task<ActionResult<Users>> Post([FromBody]JsonElement data)
{
try
{
var users = JsonSerializer.Deserialize<Users>(data.GetRawText());
var company = JsonSerializer.Deserialize<Company>(data.GetRawText());
...
}
}
在我尝试反序列化它们后,用户和公司属性为空。不知道我做错了什么,以及如何在不为此创建特定模型的情况下进行简单的反序列化(我不希望这样做,因为这是我只使用一次的帖子。
JsonElement 数据如下所示:
ValueKind = Object : "
{"users":[{"ID":1,"Firstname":"MyFirstname","Lastname":"MyLastname"},
{"ID":2,"Firstname":"Jeff","Lastname":"Troll"}],
"company":
{"ID":1,"Companyname":"Stackoverflow","Location":"Unknown"}}
"
JsonElement 是正确的选择吗?或者我可以通过其他方式解决它吗?