Use json for data io, and add progress.

Use json for data io, and add progress.