AssetBundleGraph.Json.Prettify C# (CSharp) Method

Prettify() public static method

public static Prettify ( string sourceJson ) : string
sourceJson string
return string
        public static string Prettify(string sourceJson)
        {
            var lines = sourceJson
                .Replace("{", "{\n").Replace("}", "\n}")
                .Replace("[", "[\n").Replace("]", "\n]")
                .Replace(",", ",\n")
                .Split('\n');

            Func<string, int, string> indents = (string baseLine, int indentDepth) => {
                var indentsStr = string.Empty;
                for (var i = 0; i < indentDepth; i++) indentsStr += "\t";
                return indentsStr + baseLine;
            };

            var indent = 0;
            for (var i = 0; i < lines.Length; i++) {
                var line = lines[i];

                // reduce indent for "}"
                if (line.Contains("}") || line.Contains("]")) {
                    indent--;
                }

                /*
                    adopt indent.
                */
                lines[i] = indents(lines[i], indent);

                // indent continued all line after "{"
                if (line.Contains("{") || line.Contains("[")) {
                    indent++;
                    continue;
                }
            }
            return string.Join("\n", lines);
        }

Usage Example

        public void Save()
        {
            var dir = SaveDataDirectoryPath;

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            m_lastModified = DateTime.UtcNow;

            var dataStr    = Json.Serialize(ToJsonDictionary());
            var prettified = Json.Prettify(dataStr);

            using (var sw = new StreamWriter(SaveDataPath)) {
                sw.Write(prettified);
            }
            // reflect change of data.
            AssetDatabase.Refresh();
        }
All Usage Examples Of AssetBundleGraph.Json::Prettify