c# - c#返回iso datetime而不是json datetime
问题描述
我有两个项目,一个是服务器,另一个是调用者。我的服务器正在从它的函数返回一个对象,当调用者收到结果时,它正在接收作为 json 的数据。
班级
public class MyClass
{
public int myInt{ get; set; }
public string myString{ get; set; }
public DateTime myDate{ get; set; }
}
服务器端
[HttpPost]
public async Task<ActionResult> Index()
{
var tmpResult = await . . .
return new MyClass();
}
主叫方
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Method = "POST";
Stream dataStream = webRequest.GetRequestStream();
WebResponse response = webRequest.GetResponse();
dataStream = response.GetResponseStream();
using (StreamReader reader = new StreamReader(dataStream))
{
responseFromServer = reader.ReadToEnd();
reader.Close();
}
目前,我的回应是:
{"myInt":0,"myString":"a","myDate":"/Date(1531908040342)/"}
我想要实现的是:
{"myInt":0,"myString":"a","myDate":"2018-07-18 00:00:00.000"}
我认为通过将 JsonConverter 添加到我的课程中,它会解决我的问题。
public class MyClass
{
public int myInt{ get; set; }
public string myString{ get; set; }
[JsonConverter(typeof(CustomDateTimeConverter))]
public DateTime myDate{ get; set; }
}
class CustomDateTimeConverter : IsoDateTimeConverter
{
public CustomDateTimeConverter()
{
base.DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff";
}
}
但是,我得到的回应仍然是一样的。我想知道我应该如何改变我的模型来实现它?还是应该将我的响应转换为对象,然后再次重新序列化?
*补充:我希望我不需要输入类似DateTime.ToString()
. 因为这样,我需要将我的响应转换为对象,然后逐个输入。我希望我能得到的是来自服务器的响应,已经将其转换为 ISO 格式而不是 Json 格式
解决方案
尝试使用以下设置将对象转换为 JSON:
var settings = new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.IsoDateFormat
};
string json = JsonConvert.SerializeObject(data, settings);
https://www.newtonsoft.com/json/help/html/SerializeDateFormatHandling.htm
推荐阅读
- c++ - 错误:“void”之前的预期构造函数、析构函数或类型转换
- javascript - 使用 Google 地球引擎计算每个地区、月份和年份的 NDVI?
- python - 使用 Selenium 从没有 ID 或类的列表中获取文本
- c# - 为什么我不能从其他类调用?
- python - 返回 2D 张量的每一行的 top_k 掩码 softmax
- android - 尝试将 stableIds 设置为 recyclerview 适配器时,我收到错误提示我的适配器已注册观察者
- java - 在 PHP 的上下文中理解 uWSGI
- mongodb - FeathersJS 为集合创建复合索引
- reactjs - compose HOC的单元测试
- pandas - AWS SageMaker pd.read_pickle() 不起作用,但 read_csv() 起作用?