### Summary

It looks like the PR #79719 broke the support for the automatic json conversion for the `application/ld+json` and `vnd.api+json` (JSON:API spec) response header.

The earlier check: `any(candidate in sub_type for candidate in JSON_CANDIDATES)`, would return `true` for sub_type `ld+json`. However after the change in this commit, `sub_type.lower() in JSON_CANDIDATES` would return `false` for sub_type `ld+json`.

This causes the automatic loading into a key called json in the dictionary results, to not happen anymore, which of course resulted into an error in our ansible playbook: `'dict object' has no attribute 'json'`

Since `application/ld+json` seems to be a globally acknowledged content type, I would assume this should keep working.

### Issue Type

Bug Report

### Component Name

uri

### Ansible Version

```console
$ ansible --version
ansible [core 2.14.5]
  config file = None
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.10/dist-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0] (/usr/bin/python3)
  jinja version = 3.1.2
  libyaml = False
```


### Configuration

```console
# if using a version older than ansible-core 2.12 you should omit the '-t all'
$ ansible-config dump --only-changed -t all
CONFIG_FILE() = None
```


### OS / Environment

Windows / WSL2 / Ubuntu 20.04.5 LTS

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
- name: "Perform task"
  ansible.builtin.uri:
    url: "http://some_url_with_json_api_spec_formatted_response"
    method: "POST"
    body: "{{ lookup('template', './templates/some_template') }}"
    body_format: json
    status_code: 201
    headers:
      Content-Type: "application/vnd.api+json"
  register: json_api_spec_output
- name: "Record id"
  set_fact:
    response_id: "{{ json_api_spec_output.json.data.id }}"
```


### Expected Results

The id is saved into the response_id variable.

### Actual Results

```console
The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'json'.
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
- name: POST from contents of remote file
  ansible.builtin.uri:
    url: https://httpbin.org/post
    method: POST
    src: /path/to/my/file.json
    remote_src: true
- name: Create workspaces in Log analytics Azure
  ansible.builtin.uri:
    url: https://www.mms.microsoft.com/Embedded/Api/ConfigDataSources/LogManagementData/Save
    method: POST
    body_format: json
    status_code: [200, 202]
    return_content: true
    headers:
      Content-Type: application/json
      x-ms-client-workspace-path: /subscriptions/{{ sub_id }}/resourcegroups/{{ res_group }}/providers/microsoft.operationalinsights/workspaces/{{ w_spaces }}
      x-ms-client-platform: ibiza
      x-ms-client-auth-token: "{{ token_az }}"
    body:
- name: Pause play until a URL is reachable from this host
  ansible.builtin.uri:
    url: "http://192.0.2.1/some/test"
    follow_redirects: none
    method: GET
  register: _result
  until: _result.status == 200
  retries: 720 # 720 * 5 seconds = 1hour (60*60/5)
  delay: 5 # Every 5 seconds
- name: Provide SSL/TLS ciphers as a list
  uri: