zero dependency xml json bi-directional conversion