support boolean and null.