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

Mi pregunta es simple pero nadie lo ha preguntado ni ha respondido.

Tengo un JSON plano:

{"number1":"value1", "number2":"value2", "number3":"value3" } 

Puedo configurarlo en JSONObject sin problemas. Sin embargo, no sé cómo recorrer cada elemento y obtener su cadena clave y cadena de valor.

¿Alguien puede proporcionar un código eficiente para usar JSONObject? Lo que realmente quiero es obtener la clave y el valor de cada elemento sin preconocer la clave ni el valor.

Gracias por adelantado.

Use el iterador keys() para iterar sobre todas las propiedades y llame a get() para cada una.

 Iterator iter = json.keys(); while (iter.hasNext()) { String key = iter.next(); try { Object value = json.get(key); } catch (JSONException e) { // Something went wrong! } } 

Versión corta de la respuesta de Franci:

 for(Iterator iter = json.keys();iter.hasNext();) { String key = iter.next(); ... } 

Debes usar el método keys() o names() . keys() le dará un iterador que contiene todos los nombres de propiedad de String en el objeto, mientras que names() le dará una matriz de todos los nombres de cadena de clave.

Puede obtener la documentación de JSONObject aquí

http://developer.android.com/reference/org/json/JSONObject.html

Eche un vistazo a la referencia de JSONObject:

http://www.json.org/javadoc/org/json/JSONObject.html

Sin utilizar realmente el objeto, parece que usar getNames () o keys () que devuelve un iterador es el camino a seguir.