json: push undefined atom -> null; browsers seem to do the same in reverse