fix uuid is not json serializable

Support json uuid serialization with customized encoding and decoding.
 
The json module provides two methods: "default" and "object_hook".

Example usage:

(serialization)
```
json.dumps(..., default=default)
```
(deserialization)
```
json.loads(..., object_hook=object_hook)
```