... and you were right. The common code written under B4X has to be "bridged" to the local Java/environment (Android, iOS, .Net ...) and that is what each library does. Sometimes the "bridging" is done by "internal libraries" like B4XView. Sometimes the code cannot be "bridged" which is where "#if b4j ..." is required.
If you write a B4X project then you will find that all the JSON libraries contain JSONParser. The B4X code is totally common. I suspect also that the JSON libraries are not so very different from each other.
There is no good reason for it to show only B4J here. B4A Json, B4J Json and B4i iJson have the same API and same behavior (excluding some edge cases).
There is a technical reason for it as the "supported platforms" attribute comes from b4xlibs and these libraries are not b4xlibs.