C# 如何将Json中的datetime变量的默认值设置为null
我使用json,下面描述了类定义 如何为设置默认值null 所以,如果我不给它赋值,我就不会得到默认值“0001-01-01T00:00:00” 下面是完整的代码和数据示例C# 如何将Json中的datetime变量的默认值设置为null,c#,json,C#,Json,我使用json,下面描述了类定义 如何为设置默认值null 所以,如果我不给它赋值,我就不会得到默认值“0001-01-01T00:00:00” 下面是完整的代码和数据示例 使用Newtonsoft.Json; //此命名空间包含所有指示符,并且是必需的。不要改变它。 命名空间NinjaTrader.STSClasses { /// ///此文件包含所有用户定义的指标方法。 /// 公共级贸易 { [JsonProperty(“方向”)] 公共字符串方向{get;set;} [JsonPro
使用Newtonsoft.Json;
//此命名空间包含所有指示符,并且是必需的。不要改变它。
命名空间NinjaTrader.STSClasses
{
///
///此文件包含所有用户定义的指标方法。
///
公共级贸易
{
[JsonProperty(“方向”)]
公共字符串方向{get;set;}
[JsonProperty(“entryprice”)]
公共双精度输入{get;set;}
[JsonProperty(“exitprice”)]
公共双出口{get;set;}
[JsonProperty(“潜在目标”)]
公共双电势目标{get;set;}
[JsonProperty(“entrytime”)]
公共日期时间入口时间{get;set;}
[JsonProperty(“exittime”)]
公共日期时间出口时间{get;set;}
[JsonProperty(“MaxProfessional”)]
公共双mfe{get;set;}
[JsonProperty(“MaxAbout”)]
公共双mae{get;set;}
[JsonProperty(“maxagainst1ATR”)]
公共双mae1atr{get;set;}
[JsonProperty(“Time1ATR”)]
public DateTime time1atr{get;set;}
[JsonProperty(“maxagainst2ATR”)]
公共双mae2atr{get;set;}
[JsonProperty(“Time2ATR”)]
public DateTime time2atr{get;set;}
[JsonProperty(“收益”)]
公共双增益{get;set;}
[JsonProperty(“信号”)]
公共字符串信号{get;set;}
[JsonProperty(“文书”)]
公共字符串工具{get;set;}
[JsonProperty(“账户”)]
公共字符串帐户{get;set;}
[JsonProperty(“数量”)]
公共整数数量{get;set;}
[JsonProperty(“hitedge”)]
公共布尔hitedge{get;set;}
[JsonProperty(“RealizedProfitLoss”)]
public double RealizedProfitLoss{get;set;}
[JsonProperty(“现金价值”)]
公共双现金值{get;set;}
[JsonProperty(“BuyingPower”)]
公共双购买权{get;set;}
}
}
{
“方向”:“长”,
“入口价格”:1.13211,
“出口价格”:1.13197,
“潜在目标”:0.00025,
“进场时间”:“2016-08-22T13:46:31.7459655-04:00”,
“出口时间”:“2016-08-22T15:46:22.3955682-04:00”,
“最大值”:0.00055,
“最大反对”:-0.00035,
“maxagainst1ATR”:-0.00035,
“Time1ATR”:“0001-01-01T00:00:00”,
“maxagainst2ATR”:-0.00035,
“Time2ATR”:“0001-01-01T00:00:00”,
“收益”:-0.00015,
“信号”:“EnterLongBounce”,
“票据”:“$EURUSD”,
“帐户”:“InteractiveBrokersindicatorbased”,
“数量”:1,
“hitedge”:错误,
“RealizedProfitLoss”:0.0,
“现金价值”:0.0,
“购买力”:0.0
}');
如果要为空,必须使用可为空的DateTimeDateTime?
,DateTime是struct,它的默认值是“0001-01-01T00:00:00”,因此它永远不会为空。从另一个问题检查此答案
我还没有亲自检查过,但你可以试一试你试过这个吗?[JsonProperty(“Time2ATR”)]公共日期时间?time2atr{get;set;}使
time2atr
属性如所述可为空,或使用NullToDefaultConverter
from。您希望该值在JSON中显示为null
,还是希望完全跳过?
[JsonProperty("Time2ATR")]
public DateTime time2atr { get; set; }
using Newtonsoft.Json;
// This namespace holds all indicators and is required. Do not change it.
namespace NinjaTrader.STSClasses
{
/// <summary>
/// This file holds all user defined indicator methods.
/// </summary>
public class STSmyTrade
{
[JsonProperty("direction")]
public string direction { get; set; }
[JsonProperty("entryprice")]
public double entry { get; set; }
[JsonProperty("exitprice")]
public double exit { get; set; }
[JsonProperty("potentialtarget")]
public double potentialtarget { get; set; }
[JsonProperty("entrytime")]
public DateTime entrytime { get; set; }
[JsonProperty("exittime")]
public DateTime exittime { get; set; }
[JsonProperty("maxfavourable")]
public double mfe { get; set; }
[JsonProperty("maxagainst")]
public double mae { get; set; }
[JsonProperty("maxagainst1ATR")]
public double mae1atr { get; set; }
[JsonProperty("Time1ATR")]
public DateTime time1atr { get; set; }
[JsonProperty("maxagainst2ATR")]
public double mae2atr { get; set; }
[JsonProperty("Time2ATR")]
public DateTime time2atr { get; set; }
[JsonProperty("gains")]
public double gains { get; set; }
[JsonProperty("signal")]
public string signal { get; set; }
[JsonProperty("instrument")]
public string instrument { get; set; }
[JsonProperty("account")]
public string account { get; set; }
[JsonProperty("quantity")]
public int quantity { get; set; }
[JsonProperty("hitedge")]
public bool hitedge { get; set; }
[JsonProperty("RealizedProfitLoss")]
public double RealizedProfitLoss { get; set; }
[JsonProperty("CashValue")]
public double CashValue { get; set; }
[JsonProperty("BuyingPower")]
public double BuyingPower { get; set; }
}
}
{
"direction": "Long",
"entryprice": 1.13211,
"exitprice": 1.13197,
"potentialtarget": 0.00025,
"entrytime": "2016-08-22T13:46:31.7459655-04:00",
"exittime": "2016-08-22T15:46:22.3955682-04:00",
"maxfavourable": 0.00055,
"maxagainst": -0.00035,
"maxagainst1ATR": -0.00035,
"Time1ATR": "0001-01-01T00:00:00",
"maxagainst2ATR": -0.00035,
"Time2ATR": "0001-01-01T00:00:00",
"gains": -0.00015,
"signal": "EnterLongBounce",
"instrument": "$EURUSD",
"account": "InteractiveBrokersindicatorbased",
"quantity": 1,
"hitedge": false,
"RealizedProfitLoss": 0.0,
"CashValue": 0.0,
"BuyingPower": 0.0
}');