【发布时间】:2021-08-14 23:52:02
【问题描述】:
我刚刚接触过 C# 中的 REST API。这一定是一个非常基本的问题。所以我正在做一个 http POST 请求,它需要在正文中使用以下 json 格式:
{
"cars": [
{
"carsRego": "ABC123"
}
]
}
如何序列化它?我想出了这个,但它给了我错误 422:无法处理的实体错误。
var cars = new[]
{
new
{
carsRego = "ABC123"
}
};
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = new JavaScriptSerializer().Serialize(new
{
cars
});
streamWriter.Write(json);
}
谢谢!
【问题讨论】:
-
帖子中显示的代码与产生上述错误极为不同。请查看minimal reproducible example 发布代码指南和edit 相应问题。旁注:大多数人使用 Newtonsoft.Json - 虽然这里绝对不是问题,但考虑切换,因为它会给你更多的样本/找到答案的机会。
-
如果这是您要从中返回 json 的 API 端点,请使用
return JsonResult(myActualData); -
使用 System.Text.Json。示例:string jsonString =
JsonSerializer.Serialize(cars);必须通过 nuget 安装 -
旁注:您应该使用 System.Text.Json 或 Newtonsoft.Json 而不是 JavaScriptSerializer,每 Microsoft recommendations
-
@AugustoFerbonink 取决于目标框架,不需要通过 nuget 安装,它是原生的。