Refactor JsonToken a bit, to add more type detection method, to replace need to use switch