code: private boolean getAnchorMetadataFromData(ValueMap resourceProps, Element element) {
      boolean foundAny = false;
  
      List<Attribute> attributes = element.getAttributes();
      for (Attribute attribute : attributes) {
        if (DataPropertyUtil.isHtml5DataName(attribute.getName())) {
          String value = attribute.getValue();
          if (StringUtils.isNotEmpty(value)) {
            String property = DataPropertyUtil.toHeadlessCamelCaseName(attribute.getName());
            if (StringUtils.startsWith(value, "[") && StringUtils.endsWith(value, "]")) {
              try {
                JSONArray jsonArray = new JSONArray(value);
                String[] values = new String[jsonArray.length()];
                for (int i = 0; i < jsonArray.length(); i++) {
                  values[i] = jsonArray.optString(i);
                }
                resourceProps.put(property, values);
              }
              catch (JSONException ex) {
                // ignore
              }
            }
            else {
              // decode if required
              value = decodeIfEncoded(value);
              resourceProps.put(property, value);
            }
            foundAny = true;
          }
        }
      }
  
      return foundAny;
    }
docs: Support data structures where link metadata is stored in mutliple HTML5 data-* attributes.
  @param resourceProps ValueMap to write link metadata to
  @param element Link element
  @return true if any metadata attribute was found