code: @SuppressWarnings("unchecked")
      public final <T> T unmarshalContent(final JAXBContext ctx) {
          if (!(isJson() || isXml() || isText())) {
              throw new IllegalStateException(
                      "Can only unmarshal JSON, XML or TEXT content, not: "
                              + mimeType);
          }
  
          // We can only handle JSON...
          if (isJson()) {
              try {
          	try (final JsonReader reader = Json.createReader(new StringReader(content))) {
          	    return (T) reader.readObject();
          	}
              } catch (final RuntimeException ex) {
                  throw new RuntimeException(
                          "Error parsing json content: '" + content + "'", ex);
              }
          }
          // ...or XML
          if (isXml()) {
              try {
                  return unmarshal(ctx, content, null);
              } catch (final RuntimeException ex) {
                  throw new RuntimeException(
                          "Error parsing xml content: '" + content + "'", ex);
              }
          }
          // ...or TEXT
          return (T) content;
      }
docs: Unmarshals the content into an object. Content is required to be
  "application/xml", "application/json" or "text/plain".
  
  @param ctx
  In case the XML JAXB unmarshalling is used, you have to pass
  the JAXB context here.
  
  @return Object created from content.
  
  @param <T>
  Type expected to be returned.