private void validateStringClaim(String name) throws JwtInvalidException {
    if (!this.payload.has(name)) {
      return;
    }
    if (!this.payload.get(name).isJsonPrimitive()
        || !this.payload.get(name).getAsJsonPrimitive().isString()) {
      throw new JwtInvalidException("invalid JWT payload: claim " + name + " is not a string.");
    }
  }
An unencoded and unsigned <a href="https://tools.ietf.org/html/rfc7519">JSON Web Token</a> (JWT).

<p>It contains all payload claims and a subset of the headers. It does not contain any headers
that depend on the key, such as "alg" or "kid", because these headers are chosen when the token
is signed and encoded, and should not be chosen by the user. This ensures that the key can be
changed without any changes to the user code.
java_src/src/main/java/com/google/crypto/tink/jwt/RawJwt.java