void Serialize()

in edge-util/src/jsoncanonicalizer/JsonCanonicalizer.cs [99:153]


        void Serialize(object o)
        {
            if (o is SortedDictionary<string, object>)
            {
                buffer.Append('{');
                bool next = false;
                foreach (var keyValuePair in (SortedDictionary<string, object>)o)
                {
                    if (next)
                    {
                        buffer.Append(',');
                    }
                    next = true;
                    SerializeString(keyValuePair.Key);
                    buffer.Append(':');
                    Serialize(keyValuePair.Value);
                }
                buffer.Append('}');
            }
            else if (o is List<object>)
            {
                buffer.Append('[');
                bool next = false;
                foreach (object value in (List<object>)o)
                {
                    if (next)
                    {
                        buffer.Append(',');
                    }
                    next = true;
                    Serialize(value);
                }
                buffer.Append(']');
            }
            else if (o == null)
            {
                buffer.Append("null");
            }
            else if (o is String)
            {
                SerializeString((string)o);
            }
            else if (o is Boolean)
            {
                buffer.Append(o.ToString().ToLowerInvariant());
            }
            else if (o is Double)
            {
                buffer.Append(NumberToJson.SerializeNumber((Double)o));
            }
            else
            {
                throw new InvalidOperationException("Unknown object: " + o);
            }
        }