2016-08-22 48 views
0

設置爲null的日期時間變量i使用JSON和類定義下面如何默認值以JSON

如何設置空的默認值

[JsonProperty("Time2ATR")] 
    public DateTime time2atr { get; set; } 
描述

所以我沒有得到「0001-01-01T00:00:00」的默認值,如果我沒有給它分配任何值?

完整的代碼和datasample下面

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 
    }'); 
+0

你試試這個? [JsonProperty(「Time2ATR」)] public DateTime? time2atr {get;組; } – genericuser

+0

使'time2atr'屬性可以爲[這個答案](https://stackoverflow.com/questions/39088824/how-to-set-default-value-to-null-for-datetime-variable-in- json/39088899#39088899)說,或者從[這個答案]使用'NullToDefaultConverter '(http://stackoverflow.com/questions/31747712/json-net-deserialization-null-guid-case/31750851#31750851)。 – dbc

+0

您希望該值在JSON中顯示爲「null」還是要完全跳過? – dbc

回答

3

如果你想空,你必須使用可空的DateTime DateTime?,日期是結構和它的默認值是「0001-01-01T00:00:00 「所以它永遠不會是空的。