Example usage for com.google.gwt.json.client JSONValue isArray

List of usage examples for com.google.gwt.json.client JSONValue isArray

Introduction

In this page you can find the example usage for com.google.gwt.json.client JSONValue isArray.

Prototype

public JSONArray isArray() 

Source Link

Document

Returns a non-null reference if this JSONValue is really a JSONArray.

Usage

From source file:org.eurekastreams.web.client.ui.connect.widget.ReadStreamWidget.java

License:Apache License

/**
 * Determines the page/view within Eureka to link to for the given stream request.
 * /*  w ww.ja v a 2  s.  com*/
 * @param jsonRequestString
 *            The JSON activity query request.
 * @return URL request for stream page; null to skip link.
 */
private CreateUrlRequest determineStreamLink(final String jsonRequestString) {
    try {
        JSONObject request = StreamJsonRequestFactory.getJSONRequest(jsonRequestString);
        JSONObject query = request.get("query").isObject();
        JSONValue value = query.get("recipient");
        if (value != null) {
            JSONArray recipients = value.isArray();
            if (recipients.size() == 1) {
                JSONObject obj = recipients.get(0).isObject();
                String type = obj.get("type").isString().stringValue();
                Page page = scopeToPageMap.get(type);
                if (page != null) {
                    String name = obj.get("name").isString().stringValue();

                    CreateUrlRequest info = new CreateUrlRequest(page, name);
                    if (query.containsKey("keywords")) {
                        info.getParameters().put("search", query.get("keywords").isString().stringValue());
                    }
                    return info;
                }
            }
        }
    } catch (Exception ex) {
        int makeCheckstyleShutUp = 1;
    }
    return null;
}

From source file:org.freemedsoftware.gwt.client.JsonUtil.java

License:Open Source License

@SuppressWarnings({ "unchecked", "rawtypes" })
public static synchronized Object shoehornJson(JSONValue r, String t) {
    if (r == null || r.toString().equals("null"))
        return null;
    if (t.equals("HashMap<String,HashMap<String,String>[]>")) {
        HashMap<String, HashMap<String, String>[]> oResult = new HashMap<String, HashMap<String, String>[]>();
        JSONObject oA = r.isObject();/*from  w  w  w.  java2 s .  c o m*/
        if (oA != null) {
            Iterator<String> outerIter = oA.keySet().iterator();
            while (outerIter.hasNext()) {
                String innerKey = outerIter.next();
                List<HashMap<?, ?>> result = new ArrayList<HashMap<?, ?>>();
                JSONArray a = oA.get(innerKey).isArray();
                for (int oIter = 0; oIter < a.size(); oIter++) {
                    HashMap<String, String> item = new HashMap<String, String>();
                    JSONObject obj = a.get(oIter).isObject();
                    Iterator<String> iter = obj.keySet().iterator();
                    while (iter.hasNext()) {
                        String k = iter.next();
                        if (obj.get(k).isString() != null) {
                            item.put(k, obj.get(k).isString().stringValue());
                        }
                    }
                    result.add(oIter, item);
                }
                oResult.put(innerKey, (HashMap<String, String>[]) result.toArray(new HashMap<?, ?>[0]));
            }
        }
        return (HashMap<String, HashMap<String, String>[]>) oResult;
    }
    if (t.equals("HashMap<String,String>[]")) {
        List<HashMap<?, ?>> result = new ArrayList<HashMap<?, ?>>();
        JSONArray a = r.isArray();
        for (int oIter = 0; oIter < a.size(); oIter++) {
            HashMap<String, String> item = new HashMap<String, String>();
            JSONObject obj = a.get(oIter).isObject();
            Iterator<String> iter = obj.keySet().iterator();
            while (iter.hasNext()) {
                String k = iter.next();
                if (obj.get(k).isString() != null) {
                    item.put(k, obj.get(k).isString().stringValue());
                }
            }
            result.add(oIter, item);
        }
        return (HashMap<String, String>[]) result.toArray(new HashMap<?, ?>[0]);
    }
    if (t.equals("HashMap<String,Object>[]")) {
        List<HashMap<?, ?>> result = new ArrayList<HashMap<?, ?>>();
        JSONArray a = r.isArray();
        for (int oIter = 0; oIter < a.size(); oIter++) {
            HashMap<String, Object> item = new HashMap<String, Object>();
            JSONObject obj = a.get(oIter).isObject();
            Iterator<String> iter = obj.keySet().iterator();
            while (iter.hasNext()) {
                String k = iter.next();
                if (obj.get(k).isString() != null) {
                    item.put(k, obj.get(k));
                }
            }
            result.add(oIter, item);
        }
        return (HashMap<String, String>[]) result.toArray(new HashMap<?, ?>[0]);
    }
    if (t.equals("HashMap<String,String>[][]")) {
        List<HashMap<?, ?>[]> result = new ArrayList<HashMap<?, ?>[]>();
        JSONArray oArray = r.isArray();
        for (int wayOuterIter = 0; wayOuterIter < oArray.size(); wayOuterIter++) {
            List<HashMap<?, ?>> innerResult = new ArrayList<HashMap<?, ?>>();
            JSONArray a = r.isArray();
            for (int oIter = 0; oIter < a.size(); oIter++) {
                HashMap<String, String> item = new HashMap<String, String>();
                JSONObject obj = a.get(oIter).isObject();
                Iterator<String> iter = obj.keySet().iterator();
                while (iter.hasNext()) {
                    String k = iter.next();
                    if (obj.get(k).isString() != null) {
                        item.put(k, obj.get(k).isString().stringValue());
                    }
                }
                innerResult.add(oIter, item);
            }
            result.add(wayOuterIter, innerResult.toArray(new HashMap<?, ?>[0]));
        }
        return (HashMap<String, String>[][]) result.toArray(new HashMap<?, ?>[0][0]);
    }
    if (t.equals("HashMap<String,String>")) {
        JSONObject obj = r.isObject();
        HashMap<String, String> result = new HashMap<String, String>();
        Iterator<String> iter = obj.keySet().iterator();
        while (iter.hasNext()) {
            String k = iter.next();
            if (obj.get(k).isString() != null) {
                result.put(k, obj.get(k).isString().stringValue());
            }
        }
        return (HashMap<String, String>) result;
    }
    if (t.equals("HashMap<String,Object>")) {
        JSONObject obj = r.isObject();
        HashMap<String, Object> result = new HashMap<String, Object>();
        Iterator<String> iter = obj.keySet().iterator();
        while (iter.hasNext()) {
            String k = iter.next();
            if (obj.get(k) != null) {
                result.put(k, obj.get(k));
            }
        }
        return (HashMap<String, Object>) result;
    }
    if (t.equals("HashMap<String,HashMap<String,String>>")) {
        HashMap<String, HashMap<String, String>> oResult = new HashMap<String, HashMap<String, String>>();
        JSONObject oA = r.isObject();
        if (oA != null) {
            Iterator<String> outerIter = oA.keySet().iterator();
            while (outerIter.hasNext()) {
                String innerKey = outerIter.next();
                HashMap<String, String> item = new HashMap<String, String>();
                JSONObject obj = oA.get(innerKey).isObject();
                Iterator<String> iter = obj.keySet().iterator();
                while (iter.hasNext()) {
                    String k = iter.next();
                    if (obj.get(k).isString() != null) {
                        item.put(k, obj.get(k).isString().stringValue());
                    }
                }
                oResult.put(innerKey, (HashMap<String, String>) item);
            }
        }
        return (HashMap<String, HashMap<String, String>>) oResult;
    }
    if (t.equals("HashMap<String,HashMap<String,Integer>>")) {
        HashMap<String, HashMap<String, Integer>> oResult = new HashMap<String, HashMap<String, Integer>>();
        JSONObject oA = r.isObject();
        if (oA != null) {
            Iterator<String> outerIter = oA.keySet().iterator();
            while (outerIter.hasNext()) {
                String innerKey = outerIter.next();
                HashMap<String, Integer> item = new HashMap<String, Integer>();
                JSONObject obj = oA.get(innerKey).isObject();
                Iterator<String> iter = obj.keySet().iterator();
                while (iter.hasNext()) {
                    String k = iter.next();
                    if (obj.get(k).isNumber() != null) {
                        item.put(k, (int) obj.get(k).isNumber().doubleValue());
                    }
                }
                oResult.put(innerKey, (HashMap<String, Integer>) item);
            }
        }
        return (HashMap<String, HashMap<String, Integer>>) oResult;
    }
    if (t.equals("HashMap<Integer,String>")) {
        JSONObject obj = r.isObject();
        HashMap<Integer, String> result = new HashMap<Integer, String>();
        Iterator<String> iter = obj.keySet().iterator();
        while (iter.hasNext()) {
            String k = iter.next();
            if (obj.get(k).isString() != null) {
                result.put(Integer.valueOf(k), obj.get(k).isString().stringValue());
            }
        }
        return (HashMap<Integer, String>) result;
    }
    if (t.equals("HashMap<String,Integer>")) {
        JSONObject obj = r.isObject();
        HashMap<String, Integer> result = new HashMap<String, Integer>();
        Iterator<String> iter = obj.keySet().iterator();
        while (iter.hasNext()) {
            String k = iter.next();
            if (obj.get(k).isNumber() != null) {
                result.put(k, (int) obj.get(k).isNumber().doubleValue());
            }
        }
        return (HashMap<String, Integer>) result;
    }
    if (t.equals("String[][]")) {
        JSONArray outer = r.isArray();
        List<String[]> x = new ArrayList<String[]>();
        if (r.isArray() != null) {
            for (int oIter = 0; oIter < outer.size(); oIter++) {
                if (outer.get(oIter).isArray() != null) {
                    JSONArray inner = outer.get(oIter).isArray();
                    List<String> xI = new ArrayList<String>();
                    if (inner.isArray() != null) {
                        for (int iIter = 0; iIter < inner.size(); iIter++) {
                            if (inner.get(iIter).isString() != null) {
                                xI.add(iIter, inner.get(iIter).isString().stringValue());
                            } else if (inner.get(iIter).isNumber() != null) {
                                xI.add(iIter, inner.get(iIter).isNumber().toString());
                            }
                        }
                    }
                    x.add((String[]) xI.toArray(new String[0]));
                }
            }
            return (String[][]) x.toArray(new String[0][0]);
        }
    }
    if (t.equals("String[]")) {
        JSONArray a = r.isArray();
        List<String> x = new ArrayList<String>();
        if (r.isArray() != null) {
            for (int iter = 0; iter < a.size(); iter++) {
                if (a.get(iter).isString() != null) {
                    x.add(iter, a.get(iter).isString().stringValue());
                }
            }
        }
        return (String[]) x.toArray(new String[0]);
    }
    if (t.compareToIgnoreCase("HashMap<String,String[]>") == 0) {
        HashMap<String, String[]> oResult = new HashMap<String, String[]>();
        JSONObject oA = r.isObject();
        if (oA != null) {
            Iterator<String> outerIter = oA.keySet().iterator();
            while (outerIter.hasNext()) {
                String innerKey = outerIter.next();
                JSONArray a = oA.get(innerKey).isArray();
                String[] x = new String[a.size()];
                if (a.isArray() != null) {
                    for (int iter = 0; iter < a.size(); iter++) {
                        if (a.get(iter).isString() != null) {
                            // x.add(iter,
                            // a.get(iter).isString().stringValue());
                            x[iter] = a.get(iter).isString().stringValue();
                        }
                    }
                }
                oResult.put(innerKey, x);
            }
        }
        return (HashMap<String, String[]>) oResult;
    }

    if (t.compareToIgnoreCase("HashMap<String,List>") == 0) {
        HashMap<String, List> oResult = new HashMap<String, List>();
        JSONObject oA = r.isObject();
        if (oA != null) {
            Iterator<String> outerIter = oA.keySet().iterator();
            while (outerIter.hasNext()) {
                String innerKey = outerIter.next();
                JSONArray a = oA.get(innerKey).isArray();
                List x = new ArrayList();
                if (a.isArray() != null) {
                    for (int iter = 0; iter < a.size(); iter++) {
                        if (a.get(iter).isString() != null) {
                            // x.add(iter,
                            // a.get(iter).isString().stringValue());
                            x.add(a.get(iter).isString().stringValue());
                        }
                    }
                }
                oResult.put(innerKey, x);
            }
        }
        return (HashMap<String, List>) oResult;
    }
    if (t.compareToIgnoreCase("String") == 0) {
        if (r.isString() != null) {
            return (String) r.isString().stringValue();
        }
    }
    if (t.compareToIgnoreCase("Integer") == 0) {
        if (r.isNumber() != null) {
            return (Integer) new Integer((int) r.isNumber().doubleValue());
        }
    }
    if (t.compareToIgnoreCase("Float") == 0) {
        if (r.isNumber() != null) {
            return (Float) new Float((float) r.isNumber().doubleValue());
        }
    }
    if (t.compareToIgnoreCase("Boolean") == 0) {
        if (r.isBoolean() != null) {
            return (Boolean) r.isBoolean().booleanValue();
        }
    }

    // If anything else bombs out...
    GWT.log("Could not parse type " + t, null);
    return null;
}

From source file:org.fusesource.restygwt.client.callback.CachingCallbackFilter.java

License:Apache License

/**
 * when using the {@link Domain} annotation on services, we are able to group responses
 * of a service to invalidate them later on more fine grained. this method resolves a
 * possible ``domain`` to allow grouping.
 *
 * @return array of names of cache domains
 *//*from  w ww .  j a v a 2s  .c o m*/
protected String[] getCacheDomains(final Method method) {
    if (null == method.getData().get(Domain.CACHE_DOMAIN_KEY))
        return null;

    final JSONValue jsonValue = JSONParser.parseStrict(method.getData().get(Domain.CACHE_DOMAIN_KEY));
    if (null == jsonValue) {
        return null;
    }

    final JSONArray jsonArray = jsonValue.isArray();
    if (null != jsonArray) {
        final String[] dd = new String[jsonArray.size()];
        for (int i = 0; i < jsonArray.size(); ++i) {
            dd[i] = jsonArray.get(i).isString().stringValue();
        }

        return dd;
    }
    return null;
}

From source file:org.fusesource.restygwt.client.callback.ModelChangeCallbackFilter.java

License:Apache License

/**
 * the real filter method, called independent of the response code
 *
 * TODO method.getResponse() is not equal to response. unfortunately
 *///from  w w  w. j a v  a2 s  .c o  m
@Override
public RequestCallback filter(final Method method, final Response response, RequestCallback callback) {
    final int code = response.getStatusCode();

    if (code < Response.SC_MULTIPLE_CHOICES // code < 300
            && code >= Response.SC_OK) { // code >= 200
        String modelChangeIdentifier = method.getData().get(ModelChange.MODEL_CHANGED_DOMAIN_KEY);

        if (modelChangeIdentifier != null) {
            if (getLogger() != null) {
                getLogger()
                        .fine("found modelChangeIdentifier \"" + modelChangeIdentifier + "\" in " + response);
            }
            JSONValue jsonValue = JSONParser.parseStrict(modelChangeIdentifier);
            JSONArray jsonArray = jsonValue.isArray();

            if (jsonArray != null) {
                for (int i = 0; i < jsonArray.size(); ++i) {
                    ModelChangeEvent e = new ModelChangeEvent(jsonArray.get(i).isString().stringValue());

                    if (getLogger() != null) {
                        getLogger().info("fire event \"" + e + "\" ...");
                    }
                    eventBus.fireEvent(e);
                }
            } else {
                if (getLogger() != null) {
                    getLogger().info("found null array for model-change events");
                }
            }
        }
        return callback;
    }

    if (getLogger() != null) {
        getLogger().fine("no event processing due to invalid response code: " + code);
    }
    return callback;
}

From source file:org.fusesource.restygwt.client.Method.java

License:Apache License

public <T extends JavaScriptObject> void send(final OverlayCallback<T> callback) {

    defaultAcceptType(Resource.CONTENT_TYPE_JSON);
    try {//from  w w w. j  a  va  2  s.  c  o m
        send(new AbstractRequestCallback<T>(this, callback) {
            protected T parseResult() throws Exception {
                try {
                    JSONValue val = JSONParser.parse(response.getText());
                    if (val.isObject() != null) {
                        return (T) val.isObject().getJavaScriptObject();
                    } else if (val.isArray() != null) {
                        return (T) val.isArray().getJavaScriptObject();
                    } else {
                        throw new ResponseFormatException("Response was NOT a JSON object");
                    }
                } catch (JSONException e) {
                    throw new ResponseFormatException("Response was NOT a valid JSON document", e);
                } catch (IllegalArgumentException e) {
                    throw new ResponseFormatException("Response was NOT a valid JSON document", e);
                }
            }
        });
    } catch (Throwable e) {
        GWT.log("Received http error for: " + builder.getHTTPMethod() + " " + builder.getUrl(), e);
        callback.onFailure(this, e);
    }
}

From source file:org.fusesource.restygwt.client.ObjectEncoderDecoder.java

License:Apache License

@Override
public Object decode(JSONValue value)
        throws org.fusesource.restygwt.client.JsonEncoderDecoder.DecodingException {
    if (value instanceof JSONNumber)
        return ((JSONNumber) value).doubleValue();
    else if (value instanceof JSONBoolean)
        return ((JSONBoolean) value).booleanValue();
    else if (value instanceof JSONString)
        return ((JSONString) value).stringValue();
    else if (value instanceof JSONArray) {
        JSONArray array = value.isArray();
        List<Object> list = new ArrayList<Object>(array.size());
        for (int ct = 0; ct < array.size(); ct++)
            list.add(decode(array.get(ct)));
        return list;
    } else if (value instanceof JSONObject) {
        JSONObject object = value.isObject();
        Map<String, Object> map = new HashMap<String, Object>();
        for (String key : object.keySet())
            map.put(key, decode(object.get(key)));
        return map;
    } else/*from   w  ww . ja  v  a  2s . c  o m*/
        return null;
}

From source file:org.geomajas.gwt2.client.service.JsonService.java

License:Open Source License

/**
 * Get a child JSON array from a parent JSON object.
 * //from   w  w  w  .  ja  va 2 s .c  om
 * @param jsonObject The parent JSON object.
 * @param key The name of the child object.
 * @return Returns the child JSON array if it could be found, or null if the value was null.
 * @throws JSONException In case something went wrong while searching for the child.
 */
public static JSONArray getChildArray(JSONObject jsonObject, String key) throws JSONException {
    checkArguments(jsonObject, key);
    JSONValue value = jsonObject.get(key);
    if (value != null) {
        if (value.isArray() != null) {
            return value.isArray();
        } else if (value.isNull() != null) {
            return null;
        }
        throw new JSONException("Child is not a JSONArray, but a: " + value.getClass());
    }
    return null;
}

From source file:org.gk.engine.client.utils.StringUtils.java

License:Open Source License

/**
 * ??jsonEventObject//  w w w.  ja v a  2s  .c om
 * 
 * @param eventId
 * @param jsonString
 * @return EventObject
 */
public static EventObject toEventObject(String eventId, String jsonString) {
    JSONValue val = JSONParser.parseLenient(jsonString);
    EventObject eo = null;
    if (jsonString.startsWith("{")) {
        eo = new EventObject(eventId, JsonConvert.jsonToMap(val.isObject()));
    } else if (jsonString.startsWith("[")) {
        eo = new EventObject(eventId, JsonConvert.jsonToList(val.isArray()));
    } else {
        eo = new EventObject(eventId, jsonString);
    }
    return eo;
}

From source file:org.gwm.splice.client.service.json.JSONSerializer.java

License:Apache License

private Object convertValue(JSONValue val) {
    if (val.isBoolean() != null) {
        return new Boolean(val.isBoolean().booleanValue());
    } else if (val.isNumber() != null) {
        return new Double(val.isNumber().getValue());
    } else if (val.isString() != null) {
        return val.isString().stringValue();
    } else if (val.isObject() != null) {
        Attributes attrs = new Attributes();
        convertAttributes(val.isObject(), attrs);
        return attrs;
    } else if (val.isArray() != null) {
        JSONArray ja = val.isArray();
        Object[] array = new Object[ja.size()];
        for (int i = 0; i < ja.size(); i++) {
            array[i] = convertValue(ja.get(i));
        }/*from   ww  w  .  ja v  a 2 s.  c  o  m*/
        return array;
    }
    return null;
}

From source file:org.gwt.dynamic.common.client.util.JsonHelper.java

License:MIT License

public static <T> List<T> fromJsonList(Class<T> beanClass, String json) {
    JSONValue value = JSONParser.parseStrict(json);
    return getReaderForBean(beanClass).readList(value.isArray());
}