Привет, ребята, я пытаюсь расшифровать значение JSON в своем приложении для Android, но я не уверен, что я делаю неправильно в своем коде …
Это мой PHP-файл:
<?php ... echo json_encode($mostrar_player); ... ?>
Который вернет мне что-то вроде этого: [«1», «Admin», «123», «Adm», «messages», «0»]
в моем приложении для Android Мне нужно поместить это значение в массив там, где я могу выбирать значения separeted, но как?
это мой код кода Android:
EditText campoLogin = (EditText)findViewById(R.id.campo_de_login); EditText campoSenha = (EditText)findViewById(R.id.campo_de_senha); toast("Conectando..."); Conectar Conn = new Conectar("http://website/chat/login.php?login=" + campoLogin.getText() + "&senha=" + campoSenha.getText() ); Log.i("-RESPOSTA-",Conn.response); // HERE IN Conn.response I have my response ["1","Admin","Admin","Admin","affs","0"] String json_str = Conn.response; JSONObject json = new JSONObject(json_str); JSONArray jArray = json.getJSONArray("msg"); //Log.i("JSON",json_data.getString("msg"));
пытаться
<?php echo json_encode($mostra_player, JSON_FORCE_OBJECT); ?>
который заставляет быть объектом.
Затем вы можете получить доступ к нему в java / android с помощью
JSONObject obj = (JSONObject) new JSONTokener(json_string_output).nextValue(); String yourdata= obj.getString("yourdata");
Если вы хотите, чтобы Array попытался
<?php echo json_encode(array("data" => $mostra_player)); ?> JSONObject json = new JSONObject(responsedata); JSONArray jArray = json.getJSONArray("posts"); for (int i = 0; i < jArray.length(); i++) { JSONObject e = jArray.getJSONObject(i); JSONObject jObject = new JSONObject(e.getString("data")); Log.d("yourdata", jObject.getString("yourdata")); Log.d("moredata", jObject.getString("moredata")); }
Для достижения этой цели есть несколько вариантов.
Лично мне нравится использовать встроенный парсер JSON в Android
JSONObject jObject = new JSONObject(result);
Вы также можете использовать библиотеку json-анализа Google https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/Gson.html
Также см. Эту ссылку для получения подробной информации о том, как на самом деле разбирать JSON и получать строки, которые вы можете использовать в своей программе. Как разобрать JSON на Android
Я постараюсь ответить: –
В соответствии с вашим кодом у вас есть эта String ["1","Admin","123","Adm","messages","0"]
которая явно является jsonarray, но вы разбираетесь как jsonobject в android.
как @Boban сказал, что вы не должны запускать сетевые операции в основном потоке, поэтому избегайте этого.
Теперь, принимая ответ, как то, что я упомянул в 1, вот как вы это сделаете:
JSONArray jArray=new JSONArray(json_str) String id=jArray.getString(0); String admin=jArray.getString(1); . . .
Надеюсь, это поможет … и если я ошибаюсь, исправьте меня 🙂
спасибо