do JSON decode, encode at request, response level