List of usage examples for com.google.gson JsonElement isJsonArray
public boolean isJsonArray()
From source file:EAIJSONConverter.java
License:Open Source License
public static SiebelPropertySet JsonObjectToPropertySet(JsonObject obj, SiebelPropertySet ps) { Iterator<Entry<String, JsonElement>> iterator = obj.entrySet().iterator(); SiebelPropertySet child;//from w ww . ja v a 2 s. c o m while (iterator.hasNext()) { JsonArray jsonArray = new JsonArray(); JsonObject jsonObject = new JsonObject(); Map.Entry mapEntry = (Map.Entry) iterator.next(); if (mapEntry != null) { JsonElement jsonelement = (JsonElement) mapEntry.getValue(); if (jsonelement.isJsonArray()) { jsonArray = jsonelement.getAsJsonArray(); child = new SiebelPropertySet(); child.setType("ListOf-" + mapEntry.getKey().toString()); for (int i = 0; i < jsonArray.size(); i++) { if (jsonArray.get(i).isJsonObject() || jsonArray.get(i).isJsonArray()) { SiebelPropertySet temp = new SiebelPropertySet(); temp.setType("" + i); if (jsonArray.get(i).isJsonObject()) child.addChild(JsonObjectToPropertySet(jsonArray.get(i).getAsJsonObject(), temp)); else { JsonObject aux = new JsonObject(); aux.add("" + i, jsonArray.get(i)); child.addChild(JsonObjectToPropertySet(aux, temp)); } } else child.setProperty("" + i, jsonArray.get(i).getAsString()); } ps.addChild(child); } else if (jsonelement.isJsonObject()) { jsonObject = jsonelement.getAsJsonObject(); child = new SiebelPropertySet(); child.setType(mapEntry.getKey().toString()); ps.addChild(JsonObjectToPropertySet(jsonObject, child)); } else { ps.setProperty(mapEntry.getKey().toString(), mapEntry.getValue().toString()); } } } return ps; }
From source file:ambari.interaction.NodeController.java
public static ArrayList<ComponentInformation> getListOfNodes() throws Exception { String url = "http://127.0.0.1:8080/api/v1/clusters/mycluster/services/HDFS/components/DATANODE?fields=host_components/HostRoles/desired_admin_state,host_components/HostRoles/state"; String responseJson = HttpURLConnectionExample.sendGet(url); System.out.print(responseJson); JsonParser jsonParser = new JsonParser(); JsonElement jsonTree = jsonParser.parse(responseJson); ArrayList<ComponentInformation> listOfCompoents = new ArrayList<ComponentInformation>(); if (jsonTree.isJsonObject()) { JsonObject jsonObject = jsonTree.getAsJsonObject(); JsonElement hostComponents = jsonObject.get("host_components"); if (hostComponents.isJsonArray()) { JsonArray hostComponentsJsonArray = hostComponents.getAsJsonArray(); System.out.println("\nStart"); System.out.println(hostComponentsJsonArray); for (int i = 0; i < hostComponentsJsonArray.size(); i++) { JsonElement hostComponentsElem = hostComponentsJsonArray.get(i); if (hostComponentsElem.isJsonObject()) { JsonObject jsonObjectElem = hostComponentsElem.getAsJsonObject(); JsonElement hostRolesElem = jsonObjectElem.get("HostRoles"); if (hostRolesElem.isJsonObject()) { JsonObject hostRolesObjs = hostRolesElem.getAsJsonObject(); JsonElement componentNameElem = hostRolesObjs.get("component_name"); JsonElement hostNameElem = hostRolesObjs.get("host_name"); JsonElement stateElem = hostRolesObjs.get("state"); listOfCompoents.add(new ComponentInformation(componentNameElem.toString(), hostNameElem.toString(), stateElem.toString())); }//from w w w . j a v a 2 s.c o m } } } } return listOfCompoents; }
From source file:angularBeans.remote.InvocationHandler.java
License:LGPL
private void genericInvoke(Object service, String methodName, JsonObject params, Map<String, Object> returns, long reqID, String UID, HttpServletRequest request) throws SecurityException, ClassNotFoundException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException { Object mainReturn = null;/*from w w w. j av a 2 s. c om*/ Method m = null; JsonElement argsElem = params.get("args"); if (reqID > 0) { returns.put("reqId", reqID); } if (argsElem != null) { JsonArray args = params.get("args").getAsJsonArray(); for (Method mt : service.getClass().getMethods()) { if (mt.getName().equals(methodName)) { m = mt; Type[] parameters = mt.getParameterTypes(); if (parameters.length == args.size()) { List<Object> argsValues = new ArrayList<>(); for (int i = 0; i < parameters.length; i++) { Class typeClass; String typeString = ((parameters[i]).toString()); if (typeString.startsWith("interface")) { typeString = typeString.substring(10); typeClass = Class.forName(typeString); } else { if (typeString.startsWith("class")) { typeString = typeString.substring(6); typeClass = Class.forName(typeString); } else { typeClass = builtInMap.get(typeString); } } JsonElement element = args.get(i); if (element.isJsonPrimitive()) { String val = element.getAsString(); argsValues.add(CommonUtils.convertFromString(val, typeClass)); } else if (element.isJsonArray()) { JsonArray arr = element.getAsJsonArray(); argsValues.add(util.deserialise(arrayTypesMap.get(typeString), arr)); } else { argsValues.add(util.deserialise(typeClass, element)); } } if (!CommonUtils.isGetter(mt)) { update(service, params); } try { mainReturn = mt.invoke(service, argsValues.toArray()); } catch (Exception e) { handleException(mt, e); e.printStackTrace(); } } } } } else { for (Method mt : service.getClass().getMethods()) { if (mt.getName().equals(methodName)) { Type[] parameters = mt.getParameterTypes(); // handling methods that took HttpServletRequest as parameter if (parameters.length == 1) { // if(mt.getParameters()[0].getType()==HttpServletRequest.class) // { // System.out.println("hehe..."); // mt.invoke(service, request); // // } } else { if (!CommonUtils.isGetter(m)) { update(service, params); } mainReturn = mt.invoke(service); } } } } ModelQueryImpl qImpl = (ModelQueryImpl) modelQueryFactory.get(service.getClass()); Map<String, Object> scMap = new HashMap<>(qImpl.getData()); returns.putAll(scMap); qImpl.getData().clear(); if (!modelQueryFactory.getRootScope().getRootScopeMap().isEmpty()) { returns.put("rootScope", new HashMap<>(modelQueryFactory.getRootScope().getRootScopeMap())); modelQueryFactory.getRootScope().getRootScopeMap().clear(); } String[] updates = null; if (m.isAnnotationPresent(NGReturn.class)) { if (mainReturn == null) mainReturn = ""; NGReturn ngReturn = m.getAnnotation(NGReturn.class); updates = ngReturn.updates(); if (ngReturn.model().length() > 0) { returns.put(ngReturn.model(), mainReturn); Map<String, String> binding = new HashMap<>(); binding.put("boundTo", ngReturn.model()); mainReturn = binding; } } if (m.isAnnotationPresent(NGPostConstruct.class)) { NGPostConstruct ngPostConstruct = m.getAnnotation(NGPostConstruct.class); updates = ngPostConstruct.updates(); } if (updates != null) { if ((updates.length == 1) && (updates[0].equals("*"))) { List<String> upd = new ArrayList<>(); for (Method met : service.getClass().getDeclaredMethods()) { if (CommonUtils.isGetter(met)) { String fieldName = (met.getName()).substring(3); String firstCar = fieldName.substring(0, 1); upd.add((firstCar.toLowerCase() + fieldName.substring(1))); } } updates = new String[upd.size()]; for (int i = 0; i < upd.size(); i++) { updates[i] = upd.get(i); } } } if (updates != null) { for (String up : updates) { String getterName = GETTER_PREFIX + up.substring(0, 1).toUpperCase() + up.substring(1); Method getter; try { getter = service.getClass().getMethod(getterName); } catch (NoSuchMethodException e) { getter = service.getClass() .getMethod((getterName.replace(GETTER_PREFIX, BOOLEAN_GETTER_PREFIX))); } Object result = getter.invoke(service); returns.put(up, result); } } returns.put("mainReturn", mainReturn); if (!logger.getLogPool().isEmpty()) { returns.put("log", logger.getLogPool().toArray()); logger.getLogPool().clear(); } }
From source file:angularBeans.remote.InvocationHandler.java
License:LGPL
private void update(Object o, JsonObject params) { if (params != null) { // boolean firstIn = false; for (Map.Entry<String, JsonElement> entry : params.entrySet()) { JsonElement value = entry.getValue(); String name = entry.getKey(); if ((name.equals("sessionUID")) || (name.equals("args"))) { continue; }/*from w ww . j av a 2s. c om*/ if ((value.isJsonObject()) && (!value.isJsonNull())) { String getName; try { getName = CommonUtils.obtainGetter(o.getClass().getDeclaredField(name)); Method getter = o.getClass().getMethod(getName); Object subObj = getter.invoke(o); // logger.log(Level.INFO, "#entring sub object "+name); update(subObj, value.getAsJsonObject()); } catch (NoSuchFieldException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException e) { e.printStackTrace(); } } // ------------------------------------ if (value.isJsonArray()) { try { String getter = CommonUtils.obtainGetter(o.getClass().getDeclaredField(name)); Method get = o.getClass().getDeclaredMethod(getter); Type type = get.getGenericReturnType(); ParameterizedType pt = (ParameterizedType) type; Type actType = pt.getActualTypeArguments()[0]; String className = actType.toString(); className = className.substring(className.indexOf("class") + 6); Class clazz = Class.forName(className); JsonArray array = value.getAsJsonArray(); Collection collection = (Collection) get.invoke(o); Object elem; for (JsonElement element : array) { if (element.isJsonPrimitive()) { JsonPrimitive primitive = element.getAsJsonPrimitive(); elem = element; if (primitive.isBoolean()) elem = primitive.getAsBoolean(); if (primitive.isString()) { elem = primitive.getAsString(); } if (primitive.isNumber()) elem = primitive.isNumber(); } else { elem = util.deserialise(clazz, element); } try { if (collection instanceof List) { if (collection.contains(elem)) collection.remove(elem); } collection.add(elem); } catch (UnsupportedOperationException e) { Logger.getLogger("AngularBeans").log(java.util.logging.Level.WARNING, "trying to modify an immutable collection : " + name); } } } catch (Exception e) { e.printStackTrace(); } } // ------------------------------------------ if (value.isJsonPrimitive() && (!name.equals("setSessionUID"))) { try { if (!CommonUtils.hasSetter(o.getClass(), name)) { continue; } name = "set" + name.substring(0, 1).toUpperCase() + name.substring(1); Class type = null; for (Method set : o.getClass().getDeclaredMethods()) { if (CommonUtils.isSetter(set)) { if (set.getName().equals(name)) { Class<?>[] pType = set.getParameterTypes(); type = pType[0]; break; } } } if (type.equals(LobWrapper.class)) continue; Object param = null; if ((params.entrySet().size() >= 1) && (type != null)) { param = CommonUtils.convertFromString(value.getAsString(), type); } o.getClass().getMethod(name, type).invoke(o, param); } catch (Exception e) { e.printStackTrace(); } } } } }
From source file:at.maui.cheapcast.json.deserializer.ProtocolMessageDeserializer.java
License:Apache License
@Override public ProtocolMessage deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException { ProtocolMessage pm;/*from w w w .j av a 2 s . co m*/ if (jsonElement.isJsonArray()) { JsonArray arr = jsonElement.getAsJsonArray(); pm = new ProtocolMessage(); pm.setProtocol(arr.get(0).getAsString()); if (pm.getProtocol().equals("ramp")) { pm.setPayload((RampMessage) jsonDeserializationContext.deserialize(arr.get(1), RampMessage.class)); } else if (pm.getProtocol().equals("cm")) { pm.setPayload((CmMessage) jsonDeserializationContext.deserialize(arr.get(1), CmMessage.class)); } return pm; } return null; //To change body of implemented methods use File | Settings | File Templates. }
From source file:augsburg.se.alltagsguide.serialization.EventPageSerializer.java
License:Open Source License
@NonNull @Override//from ww w.j av a2 s .com public List<EventPage> deserialize(@NonNull JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (!json.isJsonArray()) { return new ArrayList<>(); } return parsePages(json.getAsJsonArray()); }
From source file:augsburg.se.alltagsguide.serialization.LanguageSerializer.java
License:Open Source License
@NonNull @Override// w w w . j a va 2 s .c o m public List<Language> deserialize(@NonNull JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (!json.isJsonArray()) { return new ArrayList<>(); } List<Language> languages = parseLanguages(json.getAsJsonArray()); printLanguages(languages); return languages; }
From source file:augsburg.se.alltagsguide.serialization.LocationSerializer.java
License:Open Source License
@NonNull @Override//from w w w. j av a 2 s.c o m public List<Location> deserialize(@NonNull JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (!json.isJsonArray()) { return new ArrayList<>(); } List<Location> locations = parseLocations(json.getAsJsonArray()); printLocations(locations); return locations; }
From source file:augsburg.se.alltagsguide.serialization.PageSerializer.java
License:Open Source License
@Override public List<Page> deserialize(@NonNull JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (!json.isJsonArray()) { return new ArrayList<>(); }/*from ww w. j av a 2s. c o m*/ return parsePages(json.getAsJsonArray()); }
From source file:be.iminds.iot.dianne.jsonrpc.DianneRequestHandler.java
License:Open Source License
private Tensor asTensor(JsonArray array) { // support up to 3 dim input atm int dim0 = 1; int dim1 = 1; int dim2 = 1; int dims = 1; dim0 = array.size();/* w w w. j a va 2 s . com*/ if (array.get(0).isJsonArray()) { dims = 2; JsonArray a = array.get(0).getAsJsonArray(); dim1 = a.size(); if (a.get(0).isJsonArray()) { dims = 3; dim2 = a.get(0).getAsJsonArray().size(); } } int size = dim0 * dim1 * dim2; float[] data = new float[size]; int k = 0; for (int i = 0; i < dim0; i++) { for (int j = 0; j < dim1; j++) { for (int l = 0; l < dim2; l++) { JsonElement e = array.get(i); if (e.isJsonArray()) { e = e.getAsJsonArray().get(j); if (e.isJsonArray()) { e = e.getAsJsonArray().get(l); } } data[k++] = e.getAsFloat(); } } } int[] d = new int[dims]; d[0] = dim0; if (dims > 1) d[1] = dim1; if (dims > 2) d[2] = dim2; return new Tensor(data, d); }