add json serializer with map and union undone
add test case
add map and union writer
add map and union reader