将数据添加到json到主体[保持中]

问题描述 投票:-6回答:1

我必须将一些值和列表放入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 =-

c# json restsharp
1个回答
0
投票

在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();
            }
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.