我必须将一些值和列表放入json主体中。这是有记载的如何:
正文:
{
"Titel":"false",
"Dts":[
{
"code":"4712",
"date":"2018-05-01"
}
],
"Info":"Here we are"
}
所以我以这种方式尝试了但没有成功
request.AddJsonBody(
new {
Titel = "false",
Dts = new
{
code = "4712",
date = "2018-05-01"
},
Info = "Here we are"
)};
我是json编程和RestSharp中的新手。
谁可以帮助我?来自德国的问候-= stony007_de =-
在RestRequest中,您可以设置属性JsonSerializer,可以在其中定义DateFormatHandling。
我强烈建议您使用Newtonsoft.Json进行序列化。
public static RestRequest Create(Uri resource)
{
return new RestRequest(resource) { JsonSerializer = MyJsonSerializer.Default, RequestFormat = DataFormat.Json };
}
在JsonSerializer中。默认值为您的默认日期格式。类似于:
public static MyJsonSerializer Default { get { return new MyJsonSerializer(new Newtonsoft.Json.JsonSerializer() { DateFormatHandling = DateFormatHandling.MicrosoftDateFormat }); } }
在MyJsonSerializer类中,您应该定义用于序列化和反序列化对象的方法。此过程将使用您定义的格式。
public T Deserialize<T>(IRestResponse response)
{
var content = response.Content;
using (var stringReader = new StringReader(content))
{
using (var jsonTextReader = new JsonTextReader(stringReader))
{
try
{
return Serializer.Deserialize<T>(jsonTextReader);
}
catch (Exception exc) when (exc is JsonSerializationException || exc is JsonReaderException)
{
var exception = JsonConvert.DeserializeObject<RestExceptionDetails>(response.Content);
throw new RestException(exception.Message, exception.ServerStackTrace);
}
}
}
}
public string Serialize(object obj)
{
using (var stringWriter = new StringWriter())
{
using (var jsonTextWriter = new JsonTextWriter(stringWriter))
{
Serializer.Serialize(jsonTextWriter, obj);
return stringWriter.ToString();
}
}
}