Nuget package referenced in 2 assemblies does not work

Puzzling for sure. From your description that ought to be fine, but...

"Transitive dependencies" are your friend. If assy1 references NS.Json, and assy2 refs assy1, then NS.Json is available to assy2. There is no need to ref NS.Json from assy2.

This is a-good-thing. It means that some versioning hell is removed. If you want to upgrade NS.Json then you only have 1 place to do that. The ref is not scattered all over your projects. This works well if you also follow the good practice of having a "clean" dependency graph.