Я возвращаю строку JSON из PHP:
<?php $results = array( "result" => "success", "username" => "some username", "projects" => "some other value" ); echo json_encode($results); ?>
Я нашел пример Java, который работает в Интернете. Он использует StringBuilder и выводит ответ с помощью Toast. Я хочу, чтобы на самом деле разбирать его как объект JSON, поэтому я могу ссылаться на каждое значение key =>, но не знаю, как это сделать. Это пример, который я использую:
private void tryLogin(String usernameInput, String passwordInput) { HttpURLConnection connection; OutputStreamWriter request = null; URL url = null; String response = null; String parameters = "username=" + usernameInput + "&password=" + passwordInput; try { url = new URL(getString(R.string.loginLocation)); connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.setRequestMethod("POST"); request = new OutputStreamWriter(connection.getOutputStream()); request.write(parameters); request.flush(); request.close(); String line = ""; InputStreamReader isr = new InputStreamReader(connection.getInputStream()); BufferedReader reader = new BufferedReader(isr); StringBuilder sb = new StringBuilder(); while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } response = sb.toString(); Toast.makeText(this, "Message from server: \n" + response, 0).show(); isr.close(); reader.close(); } catch(IOException e) { Log.i("NetworkTest","Network Error: " + e); } }
Это код, который возвращает код:
05-04 19:19:54.724: INFO/NetworkTest(1061): {"result":"success","username":"rondog","projects":"1,2"}
Чтобы быть ясным, я уверен, что знаю, как разбирать строку. Я запутался в том, что возвращает ответ с сервера и отталкивает его в JSONObject (или это «ответ» на передаваемый мной объект?). Любая помощь приветствуется, спасибо!
(или «ответ» на объект, который я прохожу?)
Да. Он ожидает, что строковый объект в его конструкторе будет разбирать его.