been there, done that (json parameter storage). it's slow as molasses and precision loss from storing floats as text can cause issues.
XGBoost also has a binary file format which is neither pickle nor json. It's shared across their Python, Java and R frontends and parsed by the C++ library.
Except the library claims that will be moved away from. To the JSON system