25311.diff​ receives JSON-encoded data from 1.1 endpoints for core/browse-happy, importers, and credits. It's the same data structures as the serialized data, which means associative arrays become objects. Here, I've chosen to manually convert them back to arrays for storage and reference.

Two of them (browse-happy, importers) are simple, and also correspond to the array-based return of public functions. Credits is a bit more complicated of a data structure; and we could very likely get away with changing the return value of wp_credits() (and also the data type of the transient) and then change all of the references from arrays to objects.

We need to carefully look through the return values of the theme and plugin API /info/ endpoints as they have quite a bit of variance in return values. Need to not break existing usage of plugins_api() and themes_api().

We'll need a blog post on Make/Core about this change due to the following.

Plugins that hook into the http_request_args filter in order to filter out plugins or themes from the api.wordpress.org update checks will break update checks entirely due to expecting serialised data and instead getting JSON encoded data.

I've ​updated a plugin of mine so it supports JSON encoded data and serialised data, but I only did this after getting PHP warnings and noticing that updates were broken.