Вопрос:

Как установить значение по умолчанию в ноль для переменной даты и времени в Json

c# json

3984 просмотра

2 ответа

635 Репутация автора

я использую JSON и определение класса описано ниже

Как установить значение по умолчанию для NULL для

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

поэтому я не получаю значение по умолчанию "0001-01-01T00: 00: 00", если я не назначаю ему никакого значения?

полный код и образец данных ниже

 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
    }');
Автор: junkone Источник Размещён: 22.08.2016 09:14

Ответы (2)


5 плюса

461 Репутация автора

Решение

Если вы хотите установить значение NULL, вы должны использовать Nullable DateTime DateTime?, DateTime - это struct, и его значением по умолчанию является «0001-01-01T00: 00: 00», поэтому оно никогда не будет иметь значение NULL.

Автор: CrudaLilium Размещён: 22.08.2016 09:19

0 плюса

53 Репутация автора

Проверить этот ответ на другой вопрос Использование DefaultValueHandling

Я не проверю это сам, но вы можете попробовать

Автор: obito1406 Размещён: 22.08.2016 09:31
Вопросы из категории :
32x32