带有json格式数组的C#Http请求
我刚刚接触过C#中的RESTAPI。这一定是一个非常基本的问题。因此,我正在执行一个http POST请求,请求主体中需要以下json格式:带有json格式数组的C#Http请求,c#,api,rest,web,C#,Api,Rest,Web,我刚刚接触过C#中的RESTAPI。这一定是一个非常基本的问题。因此,我正在执行一个http POST请求,请求主体中需要以下json格式: { "cars": [ { "carsRego": "ABC123" } ] } 如何序列化它?我想到了这个,但它给了我错误422:不可处理的实体错误 var cars = new[] { new
{
"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);
}
谢谢大家! 如果您正在使用
.NET 5.0/6.0
.NET核心3.0或3.1
使用System.Text.Json
例如:
using Newtonsoft.Json;
...
var cars = new[]
{
new
{
carsRego = "ABC123"
}
};
string output = JsonConvert.SerializeObject(cars);
string jsonString=JsonSerializer.Serialize(cars)代码>
如果你正在使用
.NET标准2.0或更高版本
.NET Framework 4.7.2或更高版本
.NET核心2.0、2.1和2.2
您必须通过nuget安装System.Text.Json
如果您使用的是.net framework 4.7.2或更早版本,请使用newtonsoft.json:,或由nuget安装
例如:
using Newtonsoft.Json;
...
var cars = new[]
{
new
{
carsRego = "ABC123"
}
};
string output = JsonConvert.SerializeObject(cars);
试试这个:
创建类
public class CarsRegistration
{
public string carsRego {get; set;}
}
现在您可以使用此代码
var cars = new Dictionary<string, CarsRegistration[]>
{
{ "cars", new CarsRegistration[]
{
new CarsRegistration{ carsRego = "ABC123"}
}
}
};
string output = JsonConvert.SerializeObject(cars);
var carsFromJson= JsonConvert.DeserializeObject<Dictionary<string,
CarsRegistration[]>> (output);
output = JsonConvert.SerializeObject(carsFromJson);
文章中显示的代码与产生上述错误极为不同。请查看关于张贴代码和相应问题的指南。旁注:大多数人使用NeNothSoop.JSON——虽然这绝对不是问题。考虑切换,因为它将给你更多的样本/机会来找到答案。如果这是一个API端点,你正在从JSON中恢复,使用<代码>返回JSOREST(MyStudialDATA);<代码>使用System.Text.Json。示例:string jsonString=JsonSerializer.Serialize(cars)代码>必须通过nugetSide安装注意:根据@AugustoFerbonink,您应该使用System.Text.Json或Newtonsoft.Json而不是JavaScriptSerializer,具体取决于目标框架,不必通过nuget安装,它是本机的。这一个可以工作。谢谢你,奥古斯托!!不客气。请把这个答案标为正确答案。