Android Fetch Json - PullRequest
       5

Android Fetch Json

0 голосов
/ 28 мая 2018

Извините, но я новичок в программировании для Android, так что это может показаться очень глупым вопросом.

Я установил соединение со своими данными JSON, но мне нужно выбрать только те данные, которые мне нужны, а не все ненужные данные.Мой Json выглядит так:

data ": [{" id ": 1," температура ":" 21.375 "," влажность ":" 28 "}

Здесь мне нужен только идентификатор: 1, температура: 21,375 и влажность: 28

, чтобы установить соединение, у меня есть следующий метод:

private class jsonConnection extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... voids) {

        String username = "websiteUsername";
        String password = "websitePassword";
        String credentials = username + ":" + password;

        String sensorID = "1";
        String api = "api";
        String websiteURL = "https://" + credentials + "@website.com" + "/" + sensorID + "/" + api;

        String credBase64 = Base64.encodeToString( credentials.getBytes(), Base64.DEFAULT ).replace( "\n", "" );

        try {

            URL url = new URL( websiteURL );

            System.out.println( url );
            System.out.println( credentials );
            System.out.println( websiteURL );

            connection = (HttpsURLConnection) url.openConnection();

            String basicAuth = "Basic " + new String( encodeBase64URLSafeString( credentials.getBytes() ) );

            connection.setRequestProperty( "Authorization", basicAuth );
            connection.setRequestMethod( "GET" );
            connection.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded" );
            connection.setRequestProperty( "Content-Language", "en-US" );
            connection.setUseCaches( false );
            connection.setDoInput( true );
            connection.setDoOutput( true );
            connection.connect();

            InputStream stream = connection.getInputStream();

            bufferedReader = new BufferedReader( new InputStreamReader( stream ) );

            //StringBuffer buffer = new StringBuffer();

            String line = "";
            while (line != null) {
                line = bufferedReader.readLine();
                data = data + line;
            }


        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

        pd = new ProgressDialog( MainActivity.this );
        pd.setMessage( "Please wait" );
        pd.setCancelable( false );
        pd.show();
    }

    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute( result );
        if (pd.isShowing()) {
            pd.dismiss();
        }
            ScrollingMovementMethod());
            System.out.println( data );
            json_string = data;
            System.out.println( "json_string: " + json_string );
        }
    }

я представляю, что должен сделать что-то подобное, ноя не уверен, как продолжить.

        try {

        JSONObject parentObject = new JSONObject( data );
        JSONArray parentArray = parentObject.getJSONArray( "data" );

        JSONObject finalObject = parentArray.getJSONObject( 0 );

        int idName = finalObject.getInt( "id" );
        int tempName = finalObject.getInt( "temperature" );
        int humName = finalObject.getInt( "humidity" );
        String batName = finalObject.getString( "battery" );
        String modeName = finalObject.getString( "mode" );
        String dateName = finalObject.getString( "date_time" );
        String timeName = finalObject.getString( "date_time" );
        String luxName = finalObject.getString( "lux" );

        System.out.println( idName + tempName + humName + batName + modeName + dateName + timeName + luxName );

    } catch (JSONException e) {
        e.printStackTrace();
    }

У меня есть подозрение, что это должны быть не данные внутри параметра, а, возможно, что-то еще, и, возможно, это исправит это?

    JSONObject parentObject = new JSONObject( data );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...