add json serializer with map and union undone
add test case
add map and union writer
add map and union reader
modify union resolver to meet new union def