List of usage examples for org.json JSONArray length
public int length()
From source file:nl.hnogames.domoticz.Domoticz.SwitchLogParser.java
@Override public void parseResult(String result) { try {// www . j a v a 2 s. c om JSONArray jsonArray = new JSONArray(result); ArrayList<SwitchLogInfo> mSwitcheLogs = new ArrayList<>(); if (jsonArray.length() > 0) { for (int i = 0; i < jsonArray.length(); i++) { JSONObject row = jsonArray.getJSONObject(i); mSwitcheLogs.add(new SwitchLogInfo(row)); } } switcheLogsReceiver.onReceiveSwitches(mSwitcheLogs); } catch (JSONException e) { Log.e(TAG, "ScenesParser JSON exception"); e.printStackTrace(); switcheLogsReceiver.onError(e); } }
From source file:com.example.kylelehman.sunshine.FetchWeatherTask.java
/** * Take the String representing the complete forecast in JSON Format and * pull out the data we need to construct the Strings needed for the wireframes. * * Fortunately parsing is easy: constructor takes the JSON string and converts it * into an Object hierarchy for us./* w w w . j a va 2s . c o m*/ */ private void getWeatherDataFromJson(String forecastJsonStr, int numDays, String locationSetting) throws JSONException { // These are the names of the JSON objects that need to be extracted. // Location information final String OWM_CITY = "city"; final String OWM_CITY_NAME = "name"; final String OWM_COORD = "coord"; final String OWM_COORD_LAT = "lat"; final String OWM_COORD_LONG = "lon"; // Weather information. Each day's forecast info is an element of the "list" array. final String OWM_LIST = "list"; final String OWM_DATETIME = "dt"; final String OWM_PRESSURE = "pressure"; final String OWM_HUMIDITY = "humidity"; final String OWM_WINDSPEED = "speed"; final String OWM_WIND_DIRECTION = "deg"; // All temperatures are children of the "temp" object. final String OWM_TEMPERATURE = "temp"; final String OWM_MAX = "max"; final String OWM_MIN = "min"; final String OWM_WEATHER = "weather"; final String OWM_DESCRIPTION = "main"; final String OWM_WEATHER_ID = "id"; JSONObject forecastJson = new JSONObject(forecastJsonStr); JSONArray weatherArray = forecastJson.getJSONArray(OWM_LIST); JSONObject cityJson = forecastJson.getJSONObject(OWM_CITY); String cityName = cityJson.getString(OWM_CITY_NAME); JSONObject coordJSON = cityJson.getJSONObject(OWM_COORD); double cityLatitude = coordJSON.getLong(OWM_COORD_LAT); double cityLongitude = coordJSON.getLong(OWM_COORD_LONG); Log.v(LOG_TAG, cityName + ", with coord: " + cityLatitude + " " + cityLongitude); // Insert the location into the database. long locationID = addLocation(locationSetting, cityName, cityLatitude, cityLongitude); // Get and insert the new weather information into the database Vector<ContentValues> cVVector = new Vector<ContentValues>(weatherArray.length()); for (int i = 0; i < weatherArray.length(); i++) { // These are the values that will be collected. long dateTime; double pressure; int humidity; double windSpeed; double windDirection; double high; double low; String description; int weatherId; // Get the JSON object representing the day JSONObject dayForecast = weatherArray.getJSONObject(i); // The date/time is returned as a long. We need to convert that // into something human-readable, since most people won't read "1400356800" as // "this saturday". dateTime = dayForecast.getLong(OWM_DATETIME); pressure = dayForecast.getDouble(OWM_PRESSURE); humidity = dayForecast.getInt(OWM_HUMIDITY); windSpeed = dayForecast.getDouble(OWM_WINDSPEED); windDirection = dayForecast.getDouble(OWM_WIND_DIRECTION); // Description is in a child array called "weather", which is 1 element long. // That element also contains a weather code. JSONObject weatherObject = dayForecast.getJSONArray(OWM_WEATHER).getJSONObject(0); description = weatherObject.getString(OWM_DESCRIPTION); weatherId = weatherObject.getInt(OWM_WEATHER_ID); // Temperatures are in a child object called "temp". Try not to name variables // "temp" when working with temperature. It confuses everybody. JSONObject temperatureObject = dayForecast.getJSONObject(OWM_TEMPERATURE); high = temperatureObject.getDouble(OWM_MAX); low = temperatureObject.getDouble(OWM_MIN); ContentValues weatherValues = new ContentValues(); weatherValues.put(WeatherEntry.COLUMN_LOC_KEY, locationID); weatherValues.put(WeatherEntry.COLUMN_DATETEXT, WeatherContract.getDbDateString(new Date(dateTime * 1000L))); weatherValues.put(WeatherEntry.COLUMN_HUMIDITY, humidity); weatherValues.put(WeatherEntry.COLUMN_PRESSURE, pressure); weatherValues.put(WeatherEntry.COLUMN_WIND_SPEED, windSpeed); weatherValues.put(WeatherEntry.COLUMN_DEGREES, windDirection); weatherValues.put(WeatherEntry.COLUMN_MAX_TEMP, high); weatherValues.put(WeatherEntry.COLUMN_MIN_TEMP, low); weatherValues.put(WeatherEntry.COLUMN_SHORT_DESC, description); weatherValues.put(WeatherEntry.COLUMN_WEATHER_ID, weatherId); cVVector.add(weatherValues); } if (cVVector.size() > 0) { ContentValues[] cvArray = new ContentValues[cVVector.size()]; cVVector.toArray(cvArray); mContext.getContentResolver().bulkInsert(WeatherEntry.CONTENT_URI, cvArray); } }
From source file:com.example.jz.mysunshine.FetchWeatherTask.java
/** * Take the String representing the complete forecast in JSON Format and * pull out the data we need to construct the Strings needed for the wireframes. * <p/>/*from w w w. j a va 2 s . co m*/ * Fortunately parsing is easy: constructor takes the JSON string and converts it * into an Object hierarchy for us. */ private void getWeatherDataFromJson(String forecastJsonStr, String locationSetting) throws JSONException { // Now we have a String representing the complete forecast in JSON Format. // Fortunately parsing is easy: constructor takes the JSON string and converts it // into an Object hierarchy for us. // These are the names of the JSON objects that need to be extracted. // Location information final String OWM_CITY = "city"; final String OWM_CITY_NAME = "name"; final String OWM_COORD = "coord"; // Location coordinate final String OWM_LATITUDE = "lat"; final String OWM_LONGITUDE = "lon"; // Weather information. Each day's forecast info is an element of the "list" array. final String OWM_LIST = "list"; final String OWM_PRESSURE = "pressure"; final String OWM_HUMIDITY = "humidity"; final String OWM_WINDSPEED = "speed"; final String OWM_WIND_DIRECTION = "deg"; // All temperatures are children of the "temp" object. final String OWM_TEMPERATURE = "temp"; final String OWM_MAX = "max"; final String OWM_MIN = "min"; final String OWM_WEATHER = "weather"; final String OWM_DESCRIPTION = "main"; final String OWM_WEATHER_ID = "id"; try { JSONObject forecastJson = new JSONObject(forecastJsonStr); JSONArray weatherArray = forecastJson.getJSONArray(OWM_LIST); JSONObject cityJson = forecastJson.getJSONObject(OWM_CITY); String cityName = cityJson.getString(OWM_CITY_NAME); JSONObject cityCoord = cityJson.getJSONObject(OWM_COORD); double cityLatitude = cityCoord.getDouble(OWM_LATITUDE); double cityLongitude = cityCoord.getDouble(OWM_LONGITUDE); long locationId = addLocation(locationSetting, cityName, cityLatitude, cityLongitude); // Insert the new weather information into the database Vector<ContentValues> cVVector = new Vector<ContentValues>(weatherArray.length()); // OWM returns daily forecasts based upon the local time of the city that is being // asked for, which means that we need to know the GMT offset to translate this data // properly. // Since this data is also sent in-order and the first day is always the // current day, we're going to take advantage of that to get a nice // normalized UTC date for all of our weather. Time dayTime = new Time(); dayTime.setToNow(); // we start at the day returned by local time. Otherwise this is a mess. int julianStartDay = Time.getJulianDay(System.currentTimeMillis(), dayTime.gmtoff); // now we work exclusively in UTC dayTime = new Time(); for (int i = 0; i < weatherArray.length(); i++) { // These are the values that will be collected. long dateTime; double pressure; int humidity; double windSpeed; double windDirection; double high; double low; String description; int weatherId; // Get the JSON object representing the day JSONObject dayForecast = weatherArray.getJSONObject(i); // Cheating to convert this to UTC time, which is what we want anyhow dateTime = dayTime.setJulianDay(julianStartDay + i); pressure = dayForecast.getDouble(OWM_PRESSURE); humidity = dayForecast.getInt(OWM_HUMIDITY); windSpeed = dayForecast.getDouble(OWM_WINDSPEED); windDirection = dayForecast.getDouble(OWM_WIND_DIRECTION); // Description is in a child array called "weather", which is 1 element long. // That element also contains a weather code. JSONObject weatherObject = dayForecast.getJSONArray(OWM_WEATHER).getJSONObject(0); description = weatherObject.getString(OWM_DESCRIPTION); weatherId = weatherObject.getInt(OWM_WEATHER_ID); // Temperatures are in a child object called "temp". Try not to name variables // "temp" when working with temperature. It confuses everybody. JSONObject temperatureObject = dayForecast.getJSONObject(OWM_TEMPERATURE); high = temperatureObject.getDouble(OWM_MAX); low = temperatureObject.getDouble(OWM_MIN); ContentValues weatherValues = new ContentValues(); weatherValues.put(WeatherEntry.COLUMN_LOC_KEY, locationId); weatherValues.put(WeatherEntry.COLUMN_DATE, dateTime); weatherValues.put(WeatherEntry.COLUMN_HUMIDITY, humidity); weatherValues.put(WeatherEntry.COLUMN_PRESSURE, pressure); weatherValues.put(WeatherEntry.COLUMN_WIND_SPEED, windSpeed); weatherValues.put(WeatherEntry.COLUMN_DEGREES, windDirection); weatherValues.put(WeatherEntry.COLUMN_MAX_TEMP, high); weatherValues.put(WeatherEntry.COLUMN_MIN_TEMP, low); weatherValues.put(WeatherEntry.COLUMN_SHORT_DESC, description); weatherValues.put(WeatherEntry.COLUMN_WEATHER_ID, weatherId); cVVector.add(weatherValues); } int inserted = 0; // add to database if (cVVector.size() > 0) { ContentValues[] cvArray = new ContentValues[cVVector.size()]; cVVector.toArray(cvArray); inserted = mContext.getContentResolver().bulkInsert(WeatherEntry.CONTENT_URI, cvArray); } Log.d(LOG_TAG, "FetchWeatherTask Complete. " + inserted + "Inserted"); } catch (JSONException e) { Log.e(LOG_TAG, e.getMessage(), e); e.printStackTrace(); } }
From source file:app.sunstreak.yourpisd.net.Student.java
/** * Uses internet every time./* w w w . j a va 2s . c o m*/ * * @throws org.json.JSONException */ public int[][] loadGradeSummary() throws JSONException { try { String classId = "" + classList.getJSONObject(0).getInt("enrollmentId"); String termId = "" + classList.getJSONObject(0).getJSONArray("terms").getJSONObject(0).getInt("termId"); String url = "https://gradebook.pisd.edu/Pinnacle/Gradebook/InternetViewer/GradeSummary.aspx?" + "&EnrollmentId=" + classId + "&TermId=" + termId + "&ReportType=0&StudentId=" + studentId; HTTPResponse summary = Request.sendGet(url, session.cookies); String response = summary.getData(); int responseCode = summary.getResponseCode(); if (responseCode != 200) System.out.println("Response code: " + responseCode); /* * puts averages in classList, under each term. */ Element doc = Jsoup.parse(response); gradeSummary = Parser.gradeSummary(doc, classList); matchClasses(gradeSummary); for (int classIndex = 0; classIndex < gradeSummary.length; classIndex++) { int jsonIndex = classMatch[classIndex]; JSONArray terms = classList.getJSONObject(jsonIndex).getJSONArray("terms"); int firstTermIndex = 0; int lastTermIndex = 0; if (terms.length() == 8) { // Full year course firstTermIndex = 0; lastTermIndex = 7; } else if (terms.length() == 4) { if (terms.optJSONObject(0).optString("description").equals("1st Six Weeks")) { // First semester course firstTermIndex = 0; lastTermIndex = 3; } else { // Second semester course firstTermIndex = 4; lastTermIndex = 7; } } for (int termIndex = firstTermIndex; termIndex <= lastTermIndex; termIndex++) { int arrayLocation = termIndex > 3 ? termIndex + 2 : termIndex + 1; int average = gradeSummary[classIndex][arrayLocation]; if (average != NO_GRADES_ENTERED) classList.getJSONObject(jsonIndex).getJSONArray("terms") .getJSONObject(termIndex - firstTermIndex).put("average", average); } classList.getJSONObject(jsonIndex).put("firstSemesterAverage", gradeSummary[classIndex][5]); classList.getJSONObject(jsonIndex).put("secondSemesterAverage", gradeSummary[classIndex][10]); } // Last updated time of summary --> goes in this awkward place classList.getJSONObject(0).put("summaryLastUpdated", new Instant().getMillis()); return gradeSummary; } catch (IOException e) { e.printStackTrace(); return null; } catch (JSONException e) { e.printStackTrace(); return null; } }
From source file:app.sunstreak.yourpisd.net.Student.java
public int[] getTermIds(int classId) throws JSONException { for (int i = 0; i < classList.length(); i++) { if (classList.getJSONObject(i).getInt("classId") == classId) { JSONArray terms = classList.getJSONObject(i).getJSONArray("terms"); int[] termIds = new int[terms.length()]; for (int j = 0; j < terms.length(); j++) { termIds[j] = terms.getJSONObject(j).getInt("termId"); }/* w ww .j a v a 2 s .c o m*/ return termIds; } } // if class not found. return null; }
From source file:com.piggate.sdk.PiggateInfo.java
private static void registryInfo(JSONArray offers) { ArrayList<PiggateInfo> listaOffers = new ArrayList<PiggateInfo>(); for (int x = 0; x < offers.length(); x++) { try {/*ww w. j ava 2s .co m*/ listaOffers.add(new PiggateInfo(offers.getJSONObject(x))); } catch (JSONException e) { } } registryInfo(listaOffers); }
From source file:com.creationgroundmedia.popularmovies.trailers.TrailerLoader.java
private List<TrailerItem> getTrailersFromJSON(String trailersJsonStr) throws JSONException { if (trailersJsonStr == null) { return null; }//from w w w .j av a 2 s . c o m JSONObject movieJSON = new JSONObject(trailersJsonStr); JSONArray trailersList = movieJSON.getJSONArray(mContext.getString(R.string.jsonresults)); mTrailers = new ArrayList<>(); for (int i = 0; i < trailersList.length(); i++) { JSONObject titleJSON = trailersList.getJSONObject(i); if (titleJSON.getString(mContext.getString(R.string.jsonsite)).equalsIgnoreCase("YouTube")) { TrailerItem t = new TrailerItem(titleJSON.getString(mContext.getString(R.string.jsonname)), titleJSON.getString(mContext.getString(R.string.jsonkey))); mTrailers.add(t); } } return mTrailers; }
From source file:de.btobastian.javacord.utils.handler.message.MessageBulkDeleteHandler.java
@Override public void handle(JSONObject packet) { JSONArray messageIds = packet.getJSONArray("ids"); for (int i = 0; i < messageIds.length(); i++) { String messageId = messageIds.getString(i); final Message message = api.getMessageById(messageId); if (message == null) { return; // no cached version available }//from w w w .j av a2 s . c o m listenerExecutorService.submit(new Runnable() { @Override public void run() { List<MessageDeleteListener> listeners = api.getListeners(MessageDeleteListener.class); synchronized (listeners) { for (MessageDeleteListener listener : listeners) { try { listener.onMessageDelete(api, message); } catch (Throwable t) { logger.warn("Uncaught exception in MessageDeleteListener!", t); } } } } }); } }
From source file:com.miz.service.TraktMoviesSyncService.java
/** * Get movie collection from Trakt//from w w w. ja v a 2 s . c om */ private void downloadMovieCollection() { JSONArray jsonArray = Trakt.getMovieLibrary(this, Trakt.COLLECTION); if (jsonArray.length() > 0) { for (int i = 0; i < jsonArray.length(); i++) { try { mMovieCollection.add(String.valueOf(jsonArray.getJSONObject(i).get("tmdb_id"))); } catch (Exception e) { } } } jsonArray = null; }
From source file:com.miz.service.TraktMoviesSyncService.java
private void downloadWatchedMovies() { JSONArray jsonArray = Trakt.getMovieLibrary(this, Trakt.WATCHED); if (jsonArray.length() > 0) { for (int i = 0; i < jsonArray.length(); i++) { try { String tmdbId = String.valueOf(jsonArray.getJSONObject(i).get("tmdb_id")); mWatchedMovies.add(tmdbId); mMovieDatabase.updateMovieSingleItem(tmdbId, DbAdapterMovies.KEY_HAS_WATCHED, "1"); } catch (Exception e) { }/*from ww w. j av a 2 s.c o m*/ } } }