On PostgreSQL 9.3.4, I have a JSON type column called \"person\" and the data stored in it is in the format {dogs: [{breed: <>, name: <>}, {breed: <>
{dogs: [{breed: <>, name: <>}, {breed: <>
This is because operator ->> gets JSON array element as text. You need a cast to convert its result back to JSON.
->>
You can eliminate this redundant cast by using operator ->:
->
select person->'dogs'->0->'breed' from people where id = 77;