Android JSONObject - ¿Cómo puedo recorrer un objeto JSON plano para obtener cada clave y valor?

{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}

¿Cómo puedo obtener la clave y el valor de cada elemento sin conocer la clave ni el valor de antemano?