public virtual string ToString(int indent)
{
if (IsString())
{
string text = QuoteIfNeeded(GetString());
return text;
}
if (IsObject())
{
var i = new string(' ', indent*2);
return string.Format("{{\r\n{1}{0}}}", i, GetObject().ToString(indent + 1));
}
if (IsArray())
{
return string.Format("[{0}]", string.Join(",", GetArray().Select(e => e.ToString(indent + 1))));
}
return "<<unknown value>>";
}