Parcelable is the Android-specific recommended way to get data from one activity to another. See How do I pass data between Activities in Android application? for the specifics of how to do the passing.
Now if you were implementing a cross-platform application, or if you needed to send the same model to a web service, it might be beneficial to use JSON as a serialization format. Serializable could be used if you were only cross-platform but always with JVM languages. That said I would just implement both interfaces and use the best method for each application. JSON over the network and Parcels between activities.
In general when choosing a serialization method, you should consider what qualities you're looking for. Qualities like:
- Maintainability
- Network size
- Serialization/Deserialization performance
- Ease of implementation
- Human readability
Pick whichever serialization format will get you the best for your use cases, and implement as many as you need to cover all of your use cases.