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