Help with catching and parsing JSON in MQTT message

I am very new at this and am having trouble catching and parsing an MQTT response
could somebody please point me in the right direction.

There is another machine in the system which has responded with the states of various water segments

    "Ferns-(Yellow)": "OFF",
    "Veg1-(Red)": "OFF",
    "General-(Green)": "OFF",
    "General-(White)": "OFF",
    "Veg2-(Green-Yellow)": "OFF"

what I want to do is put 5 sensors/helpers on the dashboard with these states
I have caught the message with the following automation but cant seem to access the attributes
I saw Taras’ response to another question Profile - 123 - Home Assistant Community
which was to use trigger.payload_json. but I dont see the attributes I have

alias: test catch MQTT
description: ""
  - platform: mqtt
    topic: watering-state/#
condition: []
  - service: notify.notify
      title: watering-state message recieved
      message: >-
mode: single

I can save this but when its re-opened the last bit looks like
title: watering-state message recieved
message: ‘{{trigger.payload_json}}’

When the automation is triggered it gets an error

Stopped because an error was encountered at December 30, 2022 at 4:12:13 PM (runtime: 0.02 seconds)
template value should be a string for dictionary value @ data['message']

I will definately confess to being confused about JSON things and how they relate to Python Dictionaries - they look the same!
I am from a database background and to me this should be 5 rows each with 2 attributes ‘Unit’ and ‘State’

I did try and simulate the code in the Developer Tools/ Template

{% set response = {
    "Ferns-(Yellow)": "OFF",
    "Veg1-(Red)": "OFF",
    "General-(Green)": "OFF",
    "General-(White)": "OFF",
    "Veg2-(Green-Yellow)": "OFF"

{% for one_unit in response %}
    {{ one_unit }}
{% endfor %}

this just prints the key values. Again I dont know how to access the 2nd attribute.

P.S. I have control of the 2nd machine so I could convince it to respond with a different structure if I knew what that should look like.

Thanks for any help

answering my own question
The answer was simple. It just required some patient reading of MQTT Sensor (MQTT Sensor - Home Assistant)
It turns out that for simple use all bar the first 2 paragraphs are just noise.
To configuration.yaml I added 5 ‘sensors’ like …

    - name: "W Ferns-(Yellow) State"
      state_topic: "watering-state/Ferns-(Yellow)"
      unique_id: "sensor_w_ferns_yellow_state"

Then I changed the child to return 5 independant messages rather than bundling them together. eg 5 like
watering-state/Ferns-(Yellow) payload=On

no need to mess with templates or anything.