вернуть JSON и разобрать в Java, Android - PullRequest
1 голос
/ 04 мая 2011

Я возвращаю строку 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 (или это «ответ» объекта, который я передаю?). Любая помощь приветствуется, спасибо!

1 Ответ

0 голосов
/ 04 мая 2011

(или «ответ» - это объект, который я передаю?)

Да, это так.Он ожидает, что строковый объект в своем конструкторе проанализирует его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...