public static string Resolve(Dictionary <string, object> json)
        {
            var builder = new StringBuilder();

            foreach (var(_, value) in json)
            {
                var valueType = value.GetType();
                if (valueType.IsJArray())
                {
                    builder.Append(JArrayResolver.ResolveValue(value))
                    .Append(TableConvertionConstants.DefaultColumnSeparator);
                    continue;
                }

                if (valueType.IsJObject() && ParseToDictionaryHelper.TryParseToDictionary(value.ToString(), out var insideJson))
                {
                    builder.Append(Resolve(insideJson))
                    .Append(TableConvertionConstants.DefaultColumnSeparator);
                    continue;
                }

                builder.Append(value.ToString())
                .Append(TableConvertionConstants.DefaultColumnSeparator);
            }

            return(builder.ToString());
        }
Example #2
0
        /// <summary>
        /// Convert a payload into a table with single line
        /// </summary>
        /// <param name="jsonPayload">The string representation of the json payload</param>
        /// <param name="generateCode">Indicate that if the convertion should generate a table C# implementation</param>
        /// <returns>the string representation of the table with headers and fields</returns>
        public string?Convert(string jsonPayload, bool generateCode = false)
        {
            if (!ParseToDictionaryHelper.TryParseToDictionary(jsonPayload, out var parsedJson))
            {
                return(GeneralMessages.CouldNotConvertJsonIntoTableMessage);
            }

            return(Converter.Convert(parsedJson, generateCode).ToString());
        }
Example #3
0
        /// <summary>
        /// Methods that enable to convert a bunch of json types into table <br/>
        /// all documenation here: <see href="https://github.com/afborgesDev/ConvertJsonToGherkinExampleTable"/>
        /// </summary>
        public string?ConvertMultipleIntoSingleTable(bool generateCode = false, params string[] jsonPayloads)
        {
            var convertResultList = new List <TableConverterResult>();

            foreach (var payload in jsonPayloads)
            {
                if (!ParseToDictionaryHelper.TryParseToDictionary(payload, out var parsedJson))
                {
                    return(GeneralMessages.CouldNotConvertJsonIntoTableMessage);
                }

                var convertResult = Converter.Convert(parsedJson);
                convertResultList.Add(convertResult);
            }

            return(JoinResults(convertResultList, generateCode));
        }
        public static string Resolve(Dictionary <string, object> json)
        {
            var builder = new StringBuilder();

            foreach (var(key, value) in json)
            {
                if (!value.GetType().IsJObject())
                {
                    builder.Append(key).Append(TableConvertionConstants.DefaultColumnSeparator);
                    continue;
                }

                _ = ParseToDictionaryHelper.TryParseToDictionary(value.ToString(), out var insideJson);
                var objectReduceResult = Resolve(insideJson).Split(TableConvertionConstants.DefaultColumnSeparator);
                ReduceInsideItem(key, objectReduceResult, ref builder);
            }

            return(builder.ToString());
        }