private static void AppendText(IJsonValue value, StringBuilder stringBuilder, int maxFieldLength, string separator, bool allowObjects)
        {
            if (value.Type == JsonValueType.String)
            {
                var text = value.ToString();

                if (text.Length <= maxFieldLength)
                {
                    if (stringBuilder.Length > 0)
                    {
                        stringBuilder.Append(separator);
                    }

                    stringBuilder.Append(text);
                }
            }
            else if (value is JsonArray array)
            {
                foreach (var item in array)
                {
                    AppendText(item, stringBuilder, maxFieldLength, separator, true);
                }
            }
            else if (value is JsonObject obj && allowObjects)
            {
                foreach (var item in obj.Values)
                {
                    AppendText(item, stringBuilder, maxFieldLength, separator, true);
                }
            }
        }
Exemple #2
0
 public static string GetOptionalString(this IJsonValue data)
 {
     if (data == null)
     {
         return(null);
     }
     if (data.ValueType == JsonValueType.String)
     {
         return(data.GetString());
     }
     return(data.ToString());
 }
Exemple #3
0
        public object Visit(IField <DateTimeFieldProperties> field)
        {
            if (value.Type == JsonValueType.String)
            {
                var parseResult = InstantPattern.General.Parse(value.ToString());

                if (!parseResult.Success)
                {
                    throw parseResult.Exception;
                }

                return(parseResult.Value);
            }

            throw new InvalidCastException("Invalid json type, expected string.");
        }
 private static void AppendJsonText(IJsonValue value, Action <string> appendText)
 {
     if (value.Type == JsonValueType.String)
     {
         appendText(value.ToString());
     }
     else if (value is JsonArray array)
     {
         foreach (var item in array)
         {
             AppendJsonText(item, appendText);
         }
     }
     else if (value is JsonObject obj)
     {
         foreach (var item in obj.Values)
         {
             AppendJsonText(item, appendText);
         }
     }
 }
Exemple #5
0
 private static void AppendJsonText(Dictionary <string, StringBuilder> languages, string language, IJsonValue value)
 {
     if (value.Type == JsonValueType.String)
     {
         AppendText(languages, language, value.ToString());
     }
     else if (value is JsonArray array)
     {
         foreach (var item in array)
         {
             AppendJsonText(languages, language, item);
         }
     }
     else if (value is JsonObject obj)
     {
         foreach (var item in obj.Values)
         {
             AppendJsonText(languages, language, item);
         }
     }
 }
Exemple #6
0
 public override string ToString()
 {
     return(_jsonValue == null ? _name : _jsonValue.ToString());
 }