Exemplo n.º 1
0
        static int GenerateJson(JsonOptions options)
        {
            var tables = GetTables(options);

            using (var writer = GetTextWriter(options))
                using (var json = new JsonTextWriter(writer)) {
                    if (options.PrettyPrint)
                    {
                        json.Formatting  = Formatting.Indented;
                        json.Indentation = 2;
                        json.IndentChar  = ' ';
                    }
                    json.WriteStartObject();
                    foreach (var table in tables)
                    {
                        var normalizedTableName = options.Normalized(table.Name);
                        json.WritePropertyName(normalizedTableName);
                        json.WriteStartArray();
                        foreach (var row in table.Rows)
                        {
                            json.WriteStartObject();
                            foreach (var field in row.Fields)
                            {
                                var normalizedFieldName = options.Normalized(field.Name);
                                json.WritePropertyName(normalizedFieldName);
                                json.WriteValue(
                                    options.KeepList.Any(x => x.Key.Equals(normalizedTableName) &&
                                                         x.Value.Equals(normalizedFieldName))
                                    ? field.Value
                                    : options.CastNumber(field.Value)
                                    );
                            }
                            json.WriteEndObject();
                        }
                        json.WriteEndArray();
                    }
                    json.WriteEndObject();
                }

            return(0);
        }