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()); }
/// <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()); }
/// <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()); }