support golang json marshal unmarshal api
most of the json.Marshal and Unmarshal scenarios are supported, if you find one that is missing feel free to open a ticket.
- remove the dependency of json.Marshal/json.Unmarshal, use the marshaler and unmarshaler from our own. (cross check with json.Marshal and Unmarshal in unit test pass)
- string option support for json tag, marshal & unmarshal
- omit empty tag support
- string option tag support
- cyclic access detection during marshaling