private static JsonValue ToJsonValue(object ret)
{
if (ret == null)
{
return null;
}
var kvpc = ret as IEnumerable<KeyValuePair<string, object>>;
if (kvpc != null)
{
return new JsonObject(ToJsonPairEnumerable(kvpc));
}
var arr = ret as IEnumerable<object>;
if (arr != null)
{
return new JsonArray(ToJsonValueEnumerable(arr));
}
if (ret is bool) return new JsonPrimitive((bool)ret);
if (ret is decimal) return new JsonPrimitive((decimal)ret);
if (ret is double) return new JsonPrimitive((double)ret);
if (ret is int) return new JsonPrimitive((int)ret);
if (ret is long) return new JsonPrimitive((long)ret);
if (ret is string) return new JsonPrimitive((string)ret);
Debug.Assert(ret is ulong);
return new JsonPrimitive((ulong)ret);
}