The point of Clean Architecture is to not depend on a
SPECIFIC library. Sure you can depend on a library for JSON mapping, given that this dependency is abstracted away from your application "core", so that it is easily switchable to any other library in the future, in case the current one fails you in any way. (Although I believe things like "mapping to/from JSON" are not part of the application "core", rather, they should live in the "presentation mechanism", but this is just for the sake of the example.)
Think of how the concept of Gateway serves you: It provides an abstraction from which any persistence mechanism can be implemented without causing changes in your application.
The example of Gateway is the most commonly used because the majority of apps would require some sort of persistence mechanism, but the same concept can be applied with any part you'd want to abstract away from your application.
In an application I built, I had a requirement to calculate the distance between some entities. I found out about a nice library called Geodesy that did exactly what I needed, but instead of using it right away, I first created a small interface "DistanceCalculator", that would return me a double for the distance between two points. Behind that interface, I implemented a simple adapter that delegated the calculation down to the Geodesy library, and it was done. In case I need to change the calculation in the future, I can simply switch the DistanceCalculator implementation, and my application "core" (separate .jar file) will be unchanged.