public static JSONValue parse(TokenReader tokens, String token)
			throws IOException, ParseException {
		JSONObject result = new JSONObject();

		if ((token = tokens.next()).equals("}")) {
			return result;
		}

		do {
			String key = JSONString.parse(tokens, token).toString();
			tokens.parseAssert((token = tokens.next()).equals(":"),
					"Separating ':' expected!");
			result.put(key, JSONValue.parse(tokens, tokens.next()));
			if (!(token = tokens.next()).equals(",")) {
				break;
			}
			token = tokens.next();
		} while (true);

		tokens.parseAssert(token.equals("}"), "Closing '}' expected!");
		return result;
	}