JSON is a generic serialization method but also slow too much. Could you have any plans change serialization method to others.(Like Unity Serialization or ScriptableObject)?
Do you have a any other reason to use JSON serialization?
NodeCanvas is using the FullSerializer json library [LINK], because it is very robust and more specifically allows for serializing generics (which NC uses a lot), as well provides flexible ways for handling missing types when deserializing, among other features.
Unfortunately the Unity serialization system, while certainly faster, it is so for the reason that it lacks a lot of serialization features that in NC were a requirement. Furthermore the Unity serialization system basically only works with types deriving ScriptableObject and MonoBehaviours, which types, are not well suited for data structures like graphs and would be a total nightmare -close to impossible- to handle properly if nodes and tasks were all deriving ScriptableObject for example.
With that said, I constantly try to improve the deserialization speed, but changing to a completely different serialization system this far down the project, is really not an option, especially considering that doing so, will break existing projects using NC thus far.