public StringKeyIDictionaryJsonConverter(JsonToken startToken, string keyPrefix, string separator, string dateTimeFormat)
        {
            if ((!startToken.Equals(JsonToken.StartArray)) && (!startToken.Equals(JsonToken.StartObject)))
            {
                throw new JsonReaderException(String.Format("converter does not support converting from {0}", startToken));
            }

            if ((typeof(T) == typeof(DateTime)) && (String.IsNullOrEmpty(dateTimeFormat)))
            {
                throw new JsonReaderException("converter lack parameter", new ArgumentNullException("dateTimeFormat", "when specify T as DateTime, parameter cannot be null or empty"));
            }

            _startToken = startToken;

            _token = Enum.GetName(typeof(JsonToken), _startToken).Replace("Start", "");

            _dateTimeFormat = dateTimeFormat;

            if (String.IsNullOrEmpty(keyPrefix))
            {
                keyPrefix = "";
            }

            _keyPrefix = keyPrefix;

            if (startToken.Equals(JsonToken.StartArray))
            {
                if (String.IsNullOrEmpty(separator))
                {
                    throw new JsonReaderException("converter lack parameter", new ArgumentNullException("separator", "when specify startToken as StartArray, parameter cannot be null or empty"));
                }

                _separator = separator;
            }
        }
Esempio n. 2
0
        public ArrayJsonConverter(JsonToken startToken, string itemName)
        {
            if (startToken.Equals(JsonToken.StartArray) || startToken.Equals(JsonToken.StartObject))
            {
                _startToken = startToken;

                _token = Enum.GetName(typeof(JsonToken), _startToken).Replace("Start", "");

                if (_token.Equals("Object") && String.IsNullOrEmpty(itemName))
                {
                    throw new JsonReaderException("converter lack parameter", new ArgumentNullException("itemName", "when specify startToken as StartObject, parameter cannot be null or empty"));
                }

                _itemName = itemName;
            }
            else
            {
                throw new JsonReaderException(String.Format("converter does not support converting from {0}", startToken));
            }
        }