Dit komt omdat operator ->>
krijgt JSON-array-element als tekst. Je hebt een cast nodig om het resultaat terug naar JSON te converteren.
U kunt deze overbodige cast elimineren door operator ->
te gebruiken :
select person->'dogs'->0->'breed' from people where id = 77;