Example usage for org.json JSONObject has

List of usage examples for org.json JSONObject has

Introduction

In this page you can find the example usage for org.json JSONObject has.

Prototype

public boolean has(String key) 

Source Link

Document

Determine if the JSONObject contains a specific key.

Usage

From source file:com.nginious.http.serialize.JsonDeserializer.java

/**
 * Deserializes property with the specified name in the specified json object into a string array.
 * //  w  ww  .ja v  a  2 s  .co m
 * @param object the json object
 * @param name the property name
 * @return the deserialized array or <code>null</code> if property doesn't exist
 * @throws SerializerException if unable to deserialize value
 */
protected String[] deserializeStringArray(JSONObject object, String name) throws SerializerException {
    try {
        if (object.has(name)) {
            JSONArray array = object.getJSONArray(name);
            String[] outArray = new String[array.length()];

            for (int i = 0; i < array.length(); i++) {
                outArray[i] = array.getString(i);
            }

            return outArray;
        }

        return null;
    } catch (JSONException e) {
        throw new SerializerException("Can't deserialize string array property " + name, e);
    }
}

From source file:com.nginious.http.serialize.JsonDeserializer.java

/**
 * Deserializes property with the specified name in the specified json object into a string.
 * /*from www  .j  a  v  a2  s.c o m*/
 * @param object the json object
 * @param name the property name
 * @return the deserialized value or <code>null</code> if property doesn't exist
 * @throws SerializerException if unable to deserialize value
 */
protected String deserializeString(JSONObject object, String name) throws SerializerException {
    try {
        if (object.has(name)) {
            return object.getString(name);
        }

        return null;
    } catch (JSONException e) {
        throw new SerializerException("Can't deserialize string property " + name, e);
    }
}

From source file:com.krayzk9s.imgurholo.ui.ImagesFragment.java

public void onGetObject(Object object, String tag) {
    if (tag.equals(IMAGES)) {
        ImgurHoloActivity activity = (ImgurHoloActivity) getActivity();
        if (activity == null)
            return;
        SharedPreferences settings = activity.getApiCall().settings;
        JSONObject data = (JSONObject) object;
        Log.d("imagesData", "checking");
        Log.d("imagesData", "failed");
        JSONArray imageArray = new JSONArray();
        try {/*from  w w w.j av  a2  s .  c o  m*/
            Log.d("URI", data.toString());
            imageArray = data.getJSONArray("data");
        } catch (JSONException e) {
            try {
                imageArray = data.getJSONObject("data").getJSONArray("images");
            } catch (JSONException e2) {
                Log.e("Error!", e2.toString() + data.toString());
            }
        }
        try {
            Boolean changed = false;
            for (int i = 0; i < imageArray.length(); i++) {
                JSONObject imageData = imageArray.getJSONObject(i);
                String s = "";
                if (isGridView)
                    s = settings.getString("IconQuality", "m");
                try {
                    if (imageData.has("is_album") && imageData.getBoolean("is_album")) {
                        if (!urls.contains("http://imgur.com/"
                                + imageData.getString(ImgurHoloActivity.IMAGE_DATA_COVER) + s + ".png")) {
                            changed = true;
                            urls.add("http://imgur.com/"
                                    + imageData.getString(ImgurHoloActivity.IMAGE_DATA_COVER) + s + ".png");
                            JSONParcelable dataParcel = new JSONParcelable();
                            dataParcel.setJSONObject(imageData);
                            ids.add(dataParcel);
                        }
                    } else {
                        if (!urls.contains("http://imgur.com/" + imageData.getString("id") + s + ".png")) {
                            changed = true;
                            urls.add("http://imgur.com/" + imageData.getString("id") + s + ".png");
                            JSONParcelable dataParcel = new JSONParcelable();
                            dataParcel.setJSONObject(imageData);
                            ids.add(dataParcel);
                        }
                    }
                } catch (RejectedExecutionException e) {
                    Log.e("Rejected", e.toString());
                }
            }
            fetchingImages = !changed;
        } catch (JSONException e) {
            Log.e("Error!", e.toString() + "here");
        }
        if (!isGridView && urls.size() > 0) {
            restoreCards();
        } else if (urls.size() > 0) {
            imageAdapter.notifyDataSetChanged();
        } else if (urls.size() == 0 && noImageView != null)
            noImageView.setVisibility(View.VISIBLE);
        else {
            fetchingImages = true;
        }
        if (mPullToRefreshLayout != null)
            mPullToRefreshLayout.setRefreshComplete();
        errorText.setVisibility(View.GONE);
    }
}

From source file:com.quantcast.measurement.service.QCPolicy.java

private boolean parsePolicy(String policyJsonString) {

    boolean successful = true;
    m_blacklist = null;//from ww w  .  jav a2 s  . c o  m
    m_salt = null;
    m_blackoutUntil = 0;
    m_sessionTimeout = null;

    if (!"".equals(policyJsonString)) {
        try {
            JSONObject policyJSON = new JSONObject(policyJsonString);

            if (policyJSON.has(BLACKLIST_KEY)) {
                try {
                    JSONArray blacklistJSON = policyJSON.getJSONArray(BLACKLIST_KEY);
                    if (blacklistJSON.length() > 0) {
                        if (m_blacklist == null) {
                            m_blacklist = new HashSet<String>(blacklistJSON.length());
                        }

                        for (int i = 0; i < blacklistJSON.length(); i++) {
                            m_blacklist.add(blacklistJSON.getString(i));
                        }
                    }
                } catch (JSONException e) {
                    QCLog.w(TAG, "Failed to parse blacklist from JSON.", e);
                }
            }

            if (policyJSON.has(SALT_KEY)) {
                try {
                    m_salt = policyJSON.getString(SALT_KEY);
                    if (USE_NO_SALT.equals(m_salt)) {
                        m_salt = null;
                    }
                } catch (JSONException e) {
                    QCLog.w(TAG, "Failed to parse salt from JSON.", e);
                }
            }

            if (policyJSON.has(BLACKOUT_KEY)) {
                try {
                    m_blackoutUntil = policyJSON.getLong(BLACKOUT_KEY);
                } catch (JSONException e) {
                    QCLog.w(TAG, "Failed to parse blackout from JSON.", e);
                }
            }

            if (policyJSON.has(SESSION_TIMEOUT_KEY)) {
                try {
                    m_sessionTimeout = policyJSON.getLong(SESSION_TIMEOUT_KEY);
                    if (m_sessionTimeout <= 0) {
                        m_sessionTimeout = null;
                    }
                } catch (JSONException e) {
                    QCLog.w(TAG, "Failed to parse session timeout from JSON.", e);
                }
            }
        } catch (JSONException e) {
            QCLog.w(TAG, "Failed to parse JSON from string: " + policyJsonString);
            successful = false;
        }
    }
    return successful;
}

From source file:org.dasein.cloud.tier3.DataCenters.java

@Override
public @Nonnull Collection<DataCenter> listDataCenters(@Nonnull String providerRegionId)
        throws InternalException, CloudException {
    APITrace.begin(provider, "listDataCenters");
    try {/*  w w  w  .  j  a  v a2  s .c o m*/
        Region region = getRegion(providerRegionId);
        if (region == null) {
            throw new CloudException("No such region: " + providerRegionId);
        }

        ProviderContext ctx = provider.getContext();
        if (ctx == null) {
            throw new NoContextException();
        }

        Cache<DataCenter> cache = Cache.getInstance(provider, "dataCenters", DataCenter.class,
                CacheLevel.REGION_ACCOUNT, new TimePeriod<Day>(1, TimePeriod.DAY));
        Collection<DataCenter> dcList = (Collection<DataCenter>) cache.get(ctx);

        if (dcList == null) {
            dcList = new ArrayList<DataCenter>();

            logger.info("Get data center locations for " + providerRegionId + " for account "
                    + ctx.getAccountNumber());

            APIHandler method = new APIHandler(provider);
            APIResponse response = method.post("Account/GetLocations/JSON", "");
            response.validate();

            JSONObject json = response.getJSON();
            if (json.has("Locations")) {
                for (int i = 0; i < json.getJSONArray("Locations").length(); i++) {
                    JSONObject location = json.getJSONArray("Locations").getJSONObject(i);
                    DataCenter dc = new DataCenter();
                    String apiLocation = location.getString("Alias");

                    dc.setActive(true);
                    dc.setAvailable(true);
                    dc.setName(apiLocation);
                    dc.setProviderDataCenterId(apiLocation);
                    dc.setRegionId(providerRegionId);
                    dcList.add(dc);
                }
            }

            cache.put(ctx, dcList);
        }
        return dcList;
    } catch (JSONException e) {
        throw new CloudException(e);
    } finally {
        APITrace.end();
    }
}

From source file:org.dasein.cloud.tier3.DataCenters.java

@Override
public Collection<Region> listRegions() throws InternalException, CloudException {
    APITrace.begin(provider, "listRegions");
    try {/*from   ww  w  . j ava  2s . com*/
        ProviderContext ctx = provider.getContext();
        if (ctx == null) {
            throw new NoContextException();
        }

        Cache<Region> cache = Cache.getInstance(provider, "regions", Region.class, CacheLevel.CLOUD_ACCOUNT,
                new TimePeriod<Day>(1, TimePeriod.DAY));
        Collection<Region> regions = (Collection<Region>) cache.get(ctx);

        if (regions == null) {
            regions = new ArrayList<Region>();

            APIHandler method = new APIHandler(provider);
            APIResponse response = method.post("Account/GetLocations/JSON", "");
            response.validate();

            JSONObject json = response.getJSON();
            if (json.has("Locations")) {
                for (int i = 0; i < json.getJSONArray("Locations").length(); i++) {
                    JSONObject location = json.getJSONArray("Locations").getJSONObject(i);
                    String apiRegion = location.getString("Region");

                    Region region = new Region(apiRegion, apiRegion, true, true);
                    if (apiRegion.contains(" ")) {
                        region.setJurisdiction(apiRegion.substring(1, apiRegion.indexOf(" ")));
                    } else {
                        region.setJurisdiction(apiRegion);
                    }
                    regions.add(region);
                }
            }

            cache.put(ctx, regions);
        }
        return regions;

    } catch (JSONException e) {
        throw new CloudException(e);
    } finally {
        APITrace.end();
    }
}

From source file:com.repkap11.repcast.VideoProvider.java

public static List<MediaInfo> buildMedia(String url) throws JSONException {

    if (null != mediaList) {
        return mediaList;
    }//w  w w.  j  a  v a 2s.c om
    Map<String, String> urlPrefixMap = new HashMap<>();
    mediaList = new ArrayList<>();
    JSONObject jsonObj = new VideoProvider().parseUrl(url);
    JSONArray categories = jsonObj.getJSONArray(TAG_CATEGORIES);
    if (null != categories) {
        for (int i = 0; i < categories.length(); i++) {
            JSONObject category = categories.getJSONObject(i);
            urlPrefixMap.put(TAG_HLS, category.getString(TAG_HLS));
            urlPrefixMap.put(TAG_DASH, category.getString(TAG_DASH));
            urlPrefixMap.put(TAG_MP4, category.getString(TAG_MP4));
            urlPrefixMap.put(TAG_IMAGES, category.getString(TAG_IMAGES));
            urlPrefixMap.put(TAG_TRACKS, category.getString(TAG_TRACKS));
            category.getString(TAG_NAME);
            JSONArray videos = category.getJSONArray(TAG_VIDEOS);
            if (null != videos) {
                for (int j = 0; j < videos.length(); j++) {
                    String videoUrl = null;
                    String mimeType = null;
                    JSONObject video = videos.getJSONObject(j);
                    String subTitle = video.getString(TAG_SUBTITLE);
                    JSONArray videoSpecs = video.getJSONArray(TAG_SOURCES);
                    if (null == videoSpecs || videoSpecs.length() == 0) {
                        continue;
                    }
                    for (int k = 0; k < videoSpecs.length(); k++) {
                        JSONObject videoSpec = videoSpecs.getJSONObject(k);
                        if (TARGET_FORMAT.equals(videoSpec.getString(TAG_VIDEO_TYPE))) {
                            videoUrl = urlPrefixMap.get(TARGET_FORMAT) + videoSpec.getString(TAG_VIDEO_URL);
                            mimeType = videoSpec.getString(TAG_VIDEO_MIME);
                        }
                    }
                    if (videoUrl == null) {
                        continue;
                    }
                    String imageUrl = urlPrefixMap.get(TAG_IMAGES) + video.getString(TAG_THUMB);
                    String bigImageUrl = urlPrefixMap.get(TAG_IMAGES) + video.getString(TAG_IMG_780_1200);
                    String title = video.getString(TAG_TITLE);
                    String studio = video.getString(TAG_STUDIO);
                    int duration = video.getInt(TAG_DURATION);
                    List<MediaTrack> tracks = null;
                    if (video.has(TAG_TRACKS)) {
                        JSONArray tracksArray = video.getJSONArray(TAG_TRACKS);
                        if (tracksArray != null) {
                            tracks = new ArrayList<>();
                            for (int k = 0; k < tracksArray.length(); k++) {
                                JSONObject track = tracksArray.getJSONObject(k);
                                tracks.add(buildTrack(track.getLong(TAG_TRACK_ID),
                                        track.getString(TAG_TRACK_TYPE), track.getString(TAG_TRACK_SUBTYPE),
                                        urlPrefixMap.get(TAG_TRACKS) + track.getString(TAG_TRACK_CONTENT_ID),
                                        track.getString(TAG_TRACK_NAME), track.getString(TAG_TRACK_LANGUAGE)));
                            }
                        }
                    }
                    mediaList.add(buildMediaInfo(title, studio, subTitle, duration, videoUrl, mimeType,
                            imageUrl, bigImageUrl, tracks));
                }
            }
        }
    }
    return mediaList;
}

From source file:com.facebook.config.AbstractExpandedConfJSONProvider.java

private JSONObject getExpandedJSONConfig() throws JSONException {
    Set<String> traversedFiles = new HashSet<>();
    Queue<String> toTraverse = new LinkedList<>();

    // Seed the graph traversal with the root node
    traversedFiles.add(root);//from   ww w.j  av  a 2  s  . c o m
    toTraverse.add(root);

    // Policy: parent configs will override children (included) configs
    JSONObject expanded = new JSONObject();
    while (!toTraverse.isEmpty()) {
        String current = toTraverse.remove();
        JSONObject json = load(current);
        JSONObject conf = json.getJSONObject(CONF_KEY);
        Iterator<String> iter = conf.keys();
        while (iter.hasNext()) {
            String key = iter.next();
            // Current config will get to insert keys before its include files
            if (!expanded.has(key)) {
                expanded.put(key, conf.get(key));
            }
        }
        // Check if the file itself has any included files
        if (json.has(INCLUDES_KEY)) {
            JSONArray includes = json.getJSONArray(INCLUDES_KEY);
            for (int idx = 0; idx < includes.length(); idx++) {
                String include = resolve(current, includes.getString(idx));
                if (traversedFiles.contains(include)) {
                    LOG.warn("Config file was included twice: " + include);
                } else {
                    toTraverse.add(include);
                    traversedFiles.add(include);
                }
            }
        }
    }

    return expanded;
}

From source file:com.trellmor.berrytube.ChatMessage.java

/**
 * Constructs a <code>ChatMessage</code> from an <code>JSONObject</code>
 * /* w ww  . ja v  a2  s. co  m*/
 * @param message
 *            <code>JSONObject<code> containing all the required fields to form a chat message
 * @throws JSONException
 */
public ChatMessage(JSONObject message) throws JSONException {
    mNick = message.getString("nick");
    mMsg = message.getString("msg");
    mMulti = message.getInt("multi");
    mType = message.getInt("type");

    // check emote
    if (message.has("emote") && message.get("emote") instanceof String) {
        String emote = message.getString("emote");
        if (emote.compareTo("rcv") == 0)
            this.mEmote = EMOTE_RCV;
        else if (emote.compareTo("sweetiebot") == 0)
            this.mEmote = EMOTE_SWEETIEBOT;
        else if (emote.compareTo("spoiler") == 0)
            this.mEmote = EMOTE_SPOILER;
        else if (emote.compareTo("act") == 0)
            this.mEmote = EMOTE_ACT;
        else if (emote.compareTo("request") == 0)
            this.mEmote = EMOTE_REQUEST;
        else if (emote.compareTo("poll") == 0)
            this.mEmote = EMOTE_POLL;
        else if (emote.compareTo("drink") == 0)
            this.mEmote = EMOTE_DRINK;
    } else
        mEmote = 0;

    JSONObject metadata = message.getJSONObject("metadata");
    mFlair = metadata.optInt("flair");
    mFlaunt = metadata.optBoolean("nameflaunt");

    try {
        this.mTimeStamp = TIMESTAMP_FORMAT.parse(message.getString("timestamp")).getTime();
    } catch (ParseException pe) {
        Log.w(TAG, "Error parsing timestamp string");
        this.mTimeStamp = System.currentTimeMillis();
    }
    this.mHidden = (this.mEmote == EMOTE_SPOILER);
}