I have a problem in bringing data into an Array in Json
. It looks like it does not execute the Try catch, but in the variable result it brings all the data. I would like to get the name field, but it does not run the Array.
See my code:
PHP:
<?php //string json (array contendo 3 elementos)
$json_str = '{"empregados": '. '[{"nome":"Jason Jones", "idade":38, "sexo": "M"},'. '{"nome":"Ada Pascalina", "idade":35, "sexo": "F"},'.
'{"nome":"Delphino da Silva", "idade":26, "sexo": "M"}'. ']}';
//faz o parsing da string, criando o array "empregados"
$jsonObj = json_decode($json_str);
$empregados = $jsonObj->empregados;
//navega pelos elementos do array, imprimindo cada empregado
foreach ( $empregados as $e ) {
echo "nome: $e->nome - idade: $e->idade - sexo: $e->sexo<br>";
}
?>
JAVA:
public class retornaUsuario extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AcessoRest ar = new AcessoRest();
String chamadaWS;
chamadaWS = "http://www.cordeiro-it.com.br/SOUPROGRESSO/Ctrl/teste.php";
String resultado = ar.chamadaGet(chamadaWS);
Log.i("JSON:",resultado);
JSONObject jsonResponse;
try {
ArrayList<String> temp = new ArrayList<String>();
jsonResponse = new JSONObject(resultado);
JSONArray usuarios = jsonResponse.getJSONArray("empregados");
System.out.println(usuarios);
for(int i=0;i<usuarios.length();i++){
JSONObject usuario = usuarios.getJSONObject(i);
JSONArray characters = usuario.getJSONArray("nome");
for(int j=0;j<characters.length();j++){
temp.add(characters.getString(j));
}
}
Toast.makeText(this, "Json: "+temp, Toast.LENGTH_LONG).show();
} catch (Exception e) {
// ERRO
System.out.println("Erro ao retornar dados do usuário");
}
}
}