private JsonObject ParseObject()
{
JsonObject obj = new JsonObject ();
while (true) {
Token key = CheckScan (TokenType.String | TokenType.ObjectFinish);
if (key.Type == TokenType.ObjectFinish) {
break;
}
CheckScan (TokenType.Colon);
Token value = CheckScan (TokenType.Value);
object value_val = value.Value;
if (value.Type == TokenType.ArrayStart) {
value_val = ParseArray ();
} else if (value.Type == TokenType.ObjectStart) {
value_val = ParseObject ();
}
obj.Add ((string)key.Value, value_val);
Token token = CheckScan (TokenType.Comma | TokenType.ObjectFinish);
if (token.Type == TokenType.ObjectFinish) {
break;
}
}
return obj;
}