GaaF Posted June 27, 2012 at 01:27 PM Report Share #465929 Posted June 27, 2012 at 01:27 PM criei um webservice com o codigo <?php $arrayRetorno = array("campor1" => "valor1", "campor2"=>"valor2", "campor3"=>"valor3"); $json["retorno"] = $arrayRetorno; echo json_encode($json); ?> e numa aplicação android le-me -> {"retorno":{"campor1":"valor1","campor2":"valor2","campor3":"valor3"}} quando sopostamente devia ler -> {"retorno":[ {"campo1":"valor1"},{"campo2":"valor2"},{"campo3":"valor3"} ]} codigo java para ir ler public String page = ""; public GetHttp(String URL) throws Exception{ BufferedReader bufferedReader = null; try{ HttpClient client = new DefaultHttpClient(); client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "android"); HttpGet request = new HttpGet(); request.setHeader("Content-Type", "text/plain; charset=utf-8"); request.setURI(new URI(URL)); HttpResponse response = client.execute(request); bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); StringBuffer stringBuffer = new StringBuffer(""); String line = ""; String NL = System.getProperty("line.separator"); while ((line = bufferedReader.readLine()) != null){ stringBuffer.append(line + NL); } bufferedReader.close(); page = stringBuffer.toString(); }catch (Exception e) { Log.e("GetHttp", e.toString()); }finally{ if (bufferedReader != null){ try{ bufferedReader.close(); }catch (IOException e){ Log.e("GetHttp", e.toString()); } } } } para fazer o parser page = http.page; // page = "{\"retorno\":[ {\"campo1\":\"valor1\"},{\"campo2\":\"valor2\"},{\"campo3\":\"valor3\"} ]}"; JSONObject object = (JSONObject) new JSONTokener(page).nextValue(); JSONArray message = object.getJSONArray("retorno"); for(int i=0;i<message.length();i++){ Log.d("dedug", i+""); JSONObject lines = (JSONObject) new JSONTokener(message.getString(i)).nextValue(); Log.d("WS", "Retorno: "+ lines.getString("campo"+(i+1)) ); } testei forcei a string correcta e funciona correndo <?php echo phpinfo(); ?> obtenho isto json support enabled json version 1.2.1 no meio disto tudo sera que alguém me pode ajudar? Link to comment Share on other sites More sharing options...
mjamado Posted June 27, 2012 at 02:12 PM Report Share #465937 Posted June 27, 2012 at 02:12 PM <?php $arrayRetorno = array("campor1" => "valor1", "campor2"=>"valor2", "campor3"=>"valor3"); $json["retorno"] = $arrayRetorno; echo json_encode($json); ?> e numa aplicação android le-me -> {"retorno":{"campor1":"valor1","campor2":"valor2","campor3":"valor3"}} quando sopostamente devia ler -> {"retorno":[ {"campo1":"valor1"},{"campo2":"valor2"},{"campo3":"valor3"} ]} Supostamente, devia ler exactamente o que está ler; está correctíssimo. Se queres que o resultado seja o de baixo, tens de alterar o teu código que gera o JSON. 1 Report "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 27, 2012 at 03:11 PM Report Share #465961 Posted June 27, 2012 at 03:11 PM (edited) o php só gera listas se os indices do array associativo forem números, o que não acontece no teu caso. quando tens arrays associativos onde os indices não são numero ele cria "objectos" de json deverias ter: $arrayRetorno = array(array("campor1" => "valor1"), array("campor2"=>"valor2"), array("campor3"=>"valor3")); isto é a mesma coisa que $arrayRetorno = array(0 => array("campor1" => "valor1"), 1 => array("campor2"=>"valor2"), 2 => array("campor3"=>"valor3")); e isto sim cria o que pretendes Edited June 27, 2012 at 03:11 PM by HappyHippyHippo 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
GaaF Posted June 28, 2012 at 12:27 AM Author Report Share #466067 Posted June 28, 2012 at 12:27 AM o php só gera listas se os indices do array associativo forem números, o que não acontece no teu caso. quando tens arrays associativos onde os indices não são numero ele cria "objectos" de json ha a possibilidade ir buscar os dados do {"retorno":{"campor1":"valor1","campor2":"valor2","campor3":"valor3"}} ou seja o que ta em valor1 etc, pela string? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now