There are two JSON APIs on Android:
org.json is a simple, tree-style API. It's biggest weakness is that it
requires you to load the entire JSON document into a string before you
can parse it. For large JSON documents this may be inefficient.
http://developer.android.com/reference/org/json/package-summary.html
android.util.JsonReader/JsonWriter are low-level streaming APIs.
They're efficient but don't do databinding, so you need to write some
boilerplate code to use these. They're only available in Android 3+.
For earlier versions of Android the same API is available standalone
in Gson's stream package.
http://developer.android.com/reference/android/util/JsonReader.html
Gson's JsonReader and JsonWriter are derived from Android's JsonReader
and JsonWriter. I literally copied and pasted them from Android into
Gson one day, and try to keep them in sync as I optimize one or the
other.
Gson is the best API for JSON parsing on Android. It has a very small
binary size (under 200 KiB), does fast databinding, and has a simple
easy-to-use API. Android's built-in JSON libraries are also good. You
should use them if you aren't doing much JSON and don't need
databinding.