Without looking at the code in a whole, you accept '{} ' as an empty array literal, so why is the special case for '{}' needed here?
It's a fast path for a common special case. Why spend any cycles parsing if we can immediately recognize it? However, anything other than a simple '{}' does require parsing.
Joe
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend