我需要一些帮助
我试图通过向它发送一个json对象来进行API调用。
但我正在努力将C#datetime转换为正确的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
答案 0 :(得分:1)
请改用序列化。它将处理您需要执行的任何转义和转换。
对于.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 }
}
});
我知道这似乎是更多的代码,但请相信我将来会为您节省很多麻烦,并且会让任何其他开发人员看到您的代码。