Das liegt daran, dass operator ->>
erhält JSON-Array-Element als Text. Sie benötigen eine Umwandlung, um das Ergebnis wieder in JSON umzuwandeln.
Sie können diese redundante Umwandlung beseitigen, indem Sie den Operator ->
verwenden :
select person->'dogs'->0->'breed' from people where id = 77;