First, you seem to be confusing the version of .Net Core, with the version of .Net Core SDK.
The version of .Net Core (e.g. 1.0.4 or 1.1.1) is not directly related the the difference between project.json and csproj. That is the version of the runtime itself. You can easily switch between different versions of .Net Core on the same machine, just by editing your project file.
The version of .Net Core SDK (e.g. Preview 2 build 3131 or 1.0.3) is what decides what project format you can use. SDK Preview 2 only supports project.json, SDK 1.0.x only supports csproj. You can have multiple versions of SDK installed on the same machine, and thus have support for both project formats at the same time. But if you want to do that, you need to specify the version of SDK for each project using global.json.
As for Visual Studio, VS 2015 only supports project.json and VS 2017 only supports csproj (but should be able to migrate project.json projects).
That being said, I don't see any reason why you should keep using project.json, .Net Core SDK 1.0.x, which supports csproj, works fine on both Linux and Windows.