The implementation of this method is largely the same as the JSON version, except for some differences in selector names.

Is there any way we can reduce the duplication there? Maybe an abstract base class for adapters, or some reusable methods somewhere?