The Meaning of Life, the Universe, and Everything.
You were probably just unlucky; also, they can be hard to spot. Especially the green ones. Sound is probably the best clue.
When the chunk is first generated - when you first go to the area - they will (like other animals) initially spawn on any solid block with space above it, not just grass.
After that though, yes, they spawn in the same way as most other non-hostile mobs*, so that is a grass block, light-level 9, with nothing above it.
In my experience, a decent-size jungle usually has parrots. But if yours does not, then you might benefit from clearing some grass and lighting things up lots.
*Ocelots don't care about light level, but want y=63 and up. Moosh, of course, only spawn on mycel (light 9, after first generation). Squid spawn in water between y=46 and 62. I guess you could also include bats - below y=63, and light under 5. Unless it's Oct 20th- Nov 3 (bat season), in which case light <8.
TL;DR; Most jungles have parrots at creation; if not they'll spawn on bright grass.
One more question, I did once clear an area to find ocelots, and it worked. Ocelots despawn however, if you lose sight of them, they are gone. Do Parrots despawn also? Animals that generate with terrain seem to stick, but I haven't looked at ones that spawn after.
I cleared some areas of jungle, and killed any chickens or pigs I could find, but I'm having no luck. Are there any other known rules for spawning parrots? I think my jungle area has been fully explored pre-patch, so it's all old jungle.
A major issue that has not been mentioned is that the mob cap for passive mobs is very low, only 11*, and this includes mobs in all loaded chunks, including the spawn chunks; normally, a hundred or more passive mobs are spawned within loaded chunks during world generation, many of which are likely difficult to see in jungles (one pack of 4 mobs spawns every 10 chunks on average for 0.4 per chunk, so on average 28 chunks will hit the cap; a render distance of 10 loads 441 chunks, or 441 * 4 * 0.1 = 176 mobs, easily half this number even when accounting for spawn failures and biomes like rivers, which do not spawn passive mobs. Note that F3 does not show all entities in loaded chunks, including the spawn chunks):
Each mob category has a separate cap and a different constant in the formula:
Hostile = 70
Passive = 10
Ambient (Bats) = 15
Water (Squids) = 5
*Note: the real cap is one greater than listed because the game only skips the spawn cycle if more than this many mobs have been spawned (lines 85-88) and does not recheck the cap until the next cycle, so natural spawning can easily exceed these values by a large amount if many individual spawn attempts (one per chunk, 225 total) succeed, such as with squid in oceans.
Here is an example of the number of passive mobs that can spawn within just the spawn chunks - there were more than 100 cows alone and 258 passive mobs (the game generates a 25x25 chunk area (625) chunks during initial world generation, which is the full size of the spawn chunks, so 258 mobs is 0.4128 per chunk, close to the average of 0.4 for an area which is all suitable biomes for passive mobs. Even if not all of these chunks are able to process entities all loaded entities are counted):
Note that bats (17), squid (6), and hostile mobs (71) never spawn during world generation unless they are part of a structure (in which case they are persistent and do not count, along with named mobs and mobs holding items they picked up. Villagers are special in that they do not count towards any global cap and are only limited by local village mechanics).
Unless they spawn in a special manner like ocelots (which use the hostile mob spawning algorithm despite being passive, most likely because they despawn; they count towards the passive mob cap so great numbers can accumulate if conditions are favorable, such as lighting up all caves) you have to kill every passive mob within a large area (lower render distance may help; 2 chunks means that only a 5x5 chunk or 80x80 block area needs to be cleared; note that the mob spawning bug that occurs with a render distance of less than 10 does not actually prevent mobs from spawning. Also, F3 does not show all entities, even within chunks loaded around the player (they seem to stop counting after they stop rendering when you are far enough away, independent of render distance).
hostile mobs (71) never spawn during world generation unless they are part of a structure (in which case they are persistent and do not count, along with named mobs and mobs holding items they picked up.
Great info there, and 'coz you clearly know your stuff, I have a quick question about the above - does that include the witches which now spawn with the hut? I sorta thought those did de-spawn.
Otherwise, witches will exclusively spawn within witch huts due to normal mob spawning and those do despawn. Also, PersistenceRequired is actually what the game looks at to determine whether a mob counts to the mob cap (named mobs only have this set if you name them with a name tag; if you use a renamed spawn egg or commands it is not set).