AssemblyCSharp.StringUtils.CsvToJson C# (CSharp) Method

CsvToJson() public static method

public static CsvToJson ( this value ) : string
value this
return string
        public static string CsvToJson(this string value)
        {
            if (value == null)
            {
            return null;
            }

            var lines = value.Split(new string[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);
            if (lines.Length < 2)
            {
            throw new Exception("Must have header line.");
            }

            var headers = lines.First().Split(',');

            var stringBuilder = new StringBuilder();
            stringBuilder.AppendLine("[");

            for (var i = 1; i < lines.Length; ++i)
            {
            var fields = lines[i].Split(',');
            if (fields.Length != headers.Length)
            {
                throw new Exception("Field count must match header count.");
            }

            var jsonElements = headers.Zip(fields, (header, field) => string.Format("{0}: {1}", header, field)).ToArray();
            var jsonObject = "{" + string.Format("{0}", string.Join(",", jsonElements)) + "}";

            if (i < lines.Length - 1)
            {
                jsonObject += ",";
            }

            stringBuilder.AppendLine(jsonObject);
            }

            stringBuilder.AppendLine("]");

            return stringBuilder.ToString();
        }