Migrate JSON encode/decode to dart:convert

This removes the dependency to the JSON package in favour of using dart:convert