将C#日期时间转换为Json序列化的日期格式

本文关键字:日期 序列化 Json 格式 转换 时间 | 更新日期: 2023-09-27 18:25:22

我在这里需要一些帮助

我正在尝试通过发送一个json对象来进行API调用

但我很难将C#日期时间转换为正确的json格式。

这是我的样例代码。

HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("example.com");
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
using (StreamWriter streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    string json = "{'"ReferenceNumber'":'"Testing OAKLAND'",'"CustomerNotes'":'"Testing'",'"DeliveryDate'":" + "Date(" + System.DateTime.Now.Ticks + ")" +
                         ",'"OrderLineItems'":[{'"ItemEntityId'":14771,'"Quantity'":2}]}";
    streamWriter.Write(json);
    streamWriter.Close();
}
HttpWebResponse httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
    string responseText = streamReader.ReadToEnd();
    Response.Write(responseText);
    Response.End();
    }

请指导我如何在json中格式化日期时间,你们认为json这个json对象可以吗??我正在使用.NET 2.0 Framework

将C#日期时间转换为Json序列化的日期格式

请改用序列化。它将处理你需要做的任何逃跑和转换。

对于.NET 2.0,您没有匿名类型的奢侈,因此您必须为要序列化的数据创建一个模型类:

public class OrderModel {
  private string _referenceNumber;
  public string ReferenceNumber {
    get { return _referenceNumber; }
    set { _referenceNumber = value; }
  }
  ...
  class OrderItem {
    private int _itemEntityId;
    public int ItemEntityId {
      get { return _itemEntityId; }
      set { _itemEntityId; }
    }
    ....
  }
}

您可以使用JSON.net 的SerializeObject方法

string json = JsonConvert.SerializeObject(new OrderModel {
  ReferenceNumber = "Testing OAKLAND",
  CustomerNotes = "Testing",
  DeliveryDate = DateTime.Now,
  OrderLineItems = new List<OrderItem>() {
    new OrderItem { ItemEntityId = 14771, Quantity = 2 }
  }
});

我知道这似乎是更多的代码,但相信我,它将在未来为您和任何其他正在研究您的代码的开发人员节省很多麻烦。