Я возвращаю строку JSON из PHP:
<?php
$results = array(
"result" => "success",
"username" => "some username",
"projects" => "some other value"
);
echo json_encode($results);
?>
Я нашел в сети пример java, который работает. Он использует StringBuilder и выводит ответ с помощью Toast. Я хочу на самом деле разобрать его как объект JSON, чтобы я мог ссылаться на каждое значение ключа =>, но не уверен, как это сделать. Вот пример, который я использую:
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 (или это «ответ» объекта, который я передаю?). Любая помощь приветствуется, спасибо!