Example usage for org.json.simple JSONArray size

List of usage examples for org.json.simple JSONArray size

Introduction

In this page you can find the example usage for org.json.simple JSONArray size.

Prototype

public int size() 

Source Link

Document

Returns the number of elements in this list.

Usage

From source file:com.mapr.xml2json.MySaxParser.java

@Override
public void startElement(String uri, String localName, String qName, Attributes attributes)
        throws SAXException {
    super.startElement(uri, localName, qName, attributes);

    JSONObject tag = new JSONObject();
    JSONArray array = new JSONArray();

    int length = attributes.getLength();
    for (int i = 0; i < length; i++) {
        JSONObject temp = new JSONObject();
        String qNameVal = attributes.getQName(i);
        String valueVal = attributes.getValue(i);

        if (qNameVal != null)
            qNameVal = cleanQName(qNameVal);

        if (valueVal.trim().length() > 0) {
            tag.put(qNameVal, valueVal);
            //array.add(temp);
        }/*w w w .  ja  v  a2s .c  om*/
    }

    if (array.size() > 0)
        tag.put("attributes", array);
    // tag.put("qName",cleanQName(qName));

    //log.info("After clean:" + cleanQName(qName));
    stk.push(tag);
}

From source file:de.fhg.fokus.odp.middleware.unittest.xTestCKANGateway.java

/**
 * Test the getPackageComments method./*from   w w w .ja va  2  s .c om*/
 */
@Test
public void testGetDataSetComments() {
    log.fine("########### GET COMMENTS ###########");
    JSONArray arr = ckanGW.getDataSetComments(DATASET_NAME);

    boolean res = false;
    for (int i = 0; i < arr.size(); i++) {
        Map m = (Map) (arr.get(i));
        log.fine(m.get("userId") + " " + m.get("comment") + " " + m.get("date"));
        String userId = (String) m.get("userId");
        String comment = (String) m.get("comment");
        String date = (String) m.get("date");

        if (userId.equals("niko2") && comment.equals("Bla bla545")) {
            res = true;
        }
    }

    assertEquals(true, res);
}

From source file:gov.usda.DataCatalogClient.Catalog.java

/**
 * Populates this class' member variables from CKAN JSON Object
 * <p>/*from w w  w .  j a va2 s  .  c  o  m*/
 * When doing a search on CKAN, the result is an array of packages(in this program datasets).
 * This method begins the process of marshaling the JSON into Java Objects by looping through
 * the packages and calling the loadDataset methods at the dataset level.
 * @param catalogCKAN_JSON JSONObject The results from a CKAN query.
 */
public void loadCatalogFromCKAN(JSONObject catalogCKAN_JSON) throws CatalogException {
    if (catalogCKAN_JSON == null) {
        throw (new NullPointerException("JSONObject catalogCKAN_JSON cannot be null"));
    }
    final JSONObject resultObject = (JSONObject) catalogCKAN_JSON.get(CKAN_CATALOG);
    final JSONArray packageList = (JSONArray) resultObject.get(Dataset.CKAN_DATASET);
    for (int i = 0; i < packageList.size(); i++) {
        final JSONObject packageObject = (JSONObject) packageList.get(i);
        final Dataset ds = new Dataset();
        try {
            ds.loadDatasetFromCKAN_JSON(packageObject);
            dataSetList.add(ds);
        } catch (DatasetException e) {
            //TODO: Capture entire error
            catalogException.addError(e.toString());
        }
    }

    addBureauNameToDataset();

    Collections.sort(dataSetList);

    if (!validateCatalog() || catalogException.exceptionSize() > 0) {
        throw (catalogException);
    }
}

From source file:de.ingrid.external.gemet.GEMETService.java

/**
 * Determine parents of passed TreeTerm and set them in TreeTerm. Only first
 * parent can be set.//from  w w  w .jav a 2 s .  c  o m
 * 
 * @param termToProcess
 *            TreeTerm without parents but id
 * @param language
 *            fetch parents in this language
 * @param onlyFirstParent
 *            pass true if only the first parent should be added to the
 *            parents list of the TreeTerm to get only one path to top !
 * @return the passed TreeTerm with parents !
 */
private TreeTerm processParentsOfTerm(TreeTerm termToProcess, String language, boolean onlyFirstParent) {
    // get parents
    List<JSONArray> parentsList = gemetClient.getParentConcepts(termToProcess.getId(), language);
    for (JSONArray parents : parentsList) {
        if (onlyFirstParent) {
            // only first parent should be set
            if (parents.size() > 0) {
                gemetMapper.addParentToTreeTerm(termToProcess, (JSONObject) parents.get(0));
                break;
            }
        } else {
            gemetMapper.addParentsToTreeTerm(termToProcess, parents);
        }
    }

    return termToProcess;
}

From source file:com.portfolio.security.LTIv2Servlet.java

protected void doRegister(HttpServletResponse response, Map<String, Object> payload, ServletContext application,
        String toolProxyPath, StringBuffer outTrace) {
    String launch_url = (String) payload.get("launch_url");
    response.setContentType("text/html");

    outTraceFormattedMessage(outTrace, "doRegister() - launch_url: " + launch_url);
    outTraceFormattedMessage(outTrace, "payload: " + payload);

    String key = null;// www .  j  av a 2 s.  co  m
    String passwd = null;
    if (BasicLTIConstants.LTI_MESSAGE_TYPE_TOOLPROXYREGISTRATIONREQUEST
            .equals(payload.get(BasicLTIConstants.LTI_MESSAGE_TYPE))) {
        key = (String) payload.get(LTI2Constants.REG_KEY);
        passwd = (String) payload.get(LTI2Constants.REG_PASSWORD);
    } else if (BasicLTIConstants.LTI_MESSAGE_TYPE_TOOLPROXY_RE_REGISTRATIONREQUEST
            .equals(payload.get(BasicLTIConstants.LTI_MESSAGE_TYPE))) {
        key = (String) payload.get(LTIServletUtils.OAUTH_CONSUMER_KEY);
        final String configPrefix = "basiclti.provider." + key + ".";
        passwd = (String) application.getAttribute(configPrefix + "secret");

    } else {
        //TODO BOOM
        outTraceFormattedMessage(outTrace, "BOOM");
    }

    String returnUrl = (String) payload.get(BasicLTIConstants.LAUNCH_PRESENTATION_RETURN_URL);
    String tcProfileUrl = (String) payload.get(LTI2Constants.TC_PROFILE_URL);

    //Lookup tc profile
    if (tcProfileUrl != null && !"".equals(tcProfileUrl)) {
        InputStream is = null;
        try {
            URL url = new URL(tcProfileUrl);
            is = url.openStream();
            JSONParser parser = new JSONParser();
            JSONObject obj = (JSONObject) parser.parse(new InputStreamReader(is));
            //             is.close();
            outTraceFormattedMessage(outTrace, obj.toJSONString());
            JSONArray services = (JSONArray) obj.get("service_offered");
            String regUrl = null;
            for (int i = 0; i < services.size(); i++) {
                JSONObject service = (JSONObject) services.get(i);
                JSONArray formats = (JSONArray) service.get("format");
                if (formats.contains("application/vnd.ims.lti.v2.toolproxy+json")) {
                    regUrl = (String) service.get("endpoint");
                    outTraceFormattedMessage(outTrace, "RegEndpoint: " + regUrl);
                }
            }
            if (regUrl == null) {
                //TODO BOOM
                throw new RuntimeException("Need an endpoint");
            }

            JSONObject toolProxy = getToolProxy(toolProxyPath);
            //TODO do some replacement on stock values that need specifics from us here

            // Tweak the stock profile
            toolProxy.put("tool_consumer_profile", tcProfileUrl);
            //LTI2Constants.
            //            BasicLTIConstants.

            //            // Re-register
            JSONObject toolProfile = (JSONObject) toolProxy.get("tool_profile");
            JSONArray messages = (JSONArray) toolProfile.get("message");
            JSONObject message = (JSONObject) messages.get(0);
            message.put("path", launch_url);
            String baseUrl = (String) payload.get("base_url");

            JSONObject pi = (JSONObject) toolProfile.get("product_instance");
            JSONObject pInfo = (JSONObject) pi.get("product_info");
            JSONObject pFamily = (JSONObject) pInfo.get("product_family");
            JSONObject vendor = (JSONObject) pFamily.get("vendor");
            vendor.put("website", baseUrl);
            //            vendor.put("timestamp", new Date().toString());
            //            $tp_profile->tool_profile->product_instance->product_info->product_family->vendor->website = $cur_base;
            //            $tp_profile->tool_profile->product_instance->product_info->product_family->vendor->timestamp = "2013-07-13T09:08:16-04:00";
            //
            //            // I want this *not* to be unique per instance
            //            $tp_profile->tool_profile->product_instance->guid = "urn:sakaiproject:unit-test";
            //
            //            $tp_profile->tool_profile->product_instance->service_provider->guid = "http://www.sakaiproject.org/";
            //
            //            // Launch Request
            //            $tp_profile->tool_profile->resource_handler[0]->message[0]->path = "tool.php";
            //            $tp_profile->tool_profile->resource_handler[0]->resource_type->code = "sakai-api-test-01";

            //            $tp_profile->tool_profile->base_url_choice[0]->secure_base_url = $cur_base;
            //            $tp_profile->tool_profile->base_url_choice[0]->default_base_url = $cur_base;
            JSONObject choice = (JSONObject) ((JSONArray) toolProfile.get("base_url_choice")).get(0);
            choice.put("secure_base_url", baseUrl);
            choice.put("default_base_url", baseUrl);

            JSONObject secContract = (JSONObject) toolProxy.get("security_contract");
            secContract.put("shared_secret", passwd);
            JSONArray toolServices = (JSONArray) secContract.get("tool_service");
            JSONObject service = (JSONObject) toolServices.get(0);
            service.put("service", regUrl);

            outTraceFormattedMessage(outTrace, "ToolProxyJSON: " + toolProxy.toJSONString());

            /// From the Implementation Guid Version 2.0 Final (http://www.imsglobal.org/lti/ltiv2p0/ltiIMGv2p0.html)
            /// Section 10.1
            /// Get data
            JSONObject dataService = getData(tcProfileUrl);

            /// find endpoint with format: application/vnd.ims.lti.v2.toolproxy+json WITH POST action
            JSONArray offered = (JSONArray) dataService.get("service_offered");
            String registerAddress = "";
            for (int i = 0; i < offered.size(); ++i) {
                JSONObject offer = (JSONObject) offered.get(i);
                JSONArray offerFormat = (JSONArray) offer.get("format");
                String format = (String) offerFormat.get(0);
                JSONArray offerAction = (JSONArray) offer.get("action");
                String action = (String) offerAction.get(0);
                if ("application/vnd.ims.lti.v2.toolproxy+json".equals(format) && "POST".equals(action)) {
                    registerAddress = (String) offer.get("endpoint");
                    break;
                }
            }

            /// FIXME: Sakai return server name as "localhost", could be my configuration
            String[] serverAddr = tcProfileUrl.split("/");
            String addr = serverAddr[2];
            registerAddress = registerAddress.substring(registerAddress.indexOf("/", 8));
            registerAddress = "http://" + addr + registerAddress;

            /// Send POST to specified URL as signed request with given values
            int responseCode = postData(registerAddress, toolProxy.toJSONString(), key, passwd);
            if (responseCode != HttpServletResponse.SC_CREATED) {
                //TODO BOOM!
                throw new RuntimeException("Bad response code.  Got " + responseCode + " but expected "
                        + HttpServletResponse.SC_CREATED);
            }

        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                if (is != null)
                    is.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

    }

    String output = "<a href='" + returnUrl + "'>Continue to launch presentation url</a>";

    try {
        PrintWriter out = response.getWriter();
        out.println(output);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:mml.handler.post.MMLPostVersionHandler.java

/**
 * Handle a POST request/*from w  ww . j a v  a2s. c o  m*/
 * @param request the raw request
 * @param response the response we will write to
 * @param urn the rest of the URL after stripping off the context
 * @throws MMLException 
 */
public void handle(HttpServletRequest request, HttpServletResponse response, String urn) throws MMLException {
    try {
        String value = request.getParameter("data");
        if (value != null) {
            JSONObject jObj = (JSONObject) JSONValue.parse(value);
            this.version1 = (String) jObj.get(JSONKeys.VERSION1);
            if (version1 == null)
                version1 = "/base";
            else
                version1 = URLDecoder.decode(version1, "UTF-8");
            this.longName = (String) jObj.get(JSONKeys.LONGNAME);
            this.docid = (String) jObj.get(JSONKeys.DOCID);
            this.dialect = getDialectFromDocid();
            JSONArray layers = (JSONArray) jObj.get("layers");
            ScratchVersion corcodeDefault = new ScratchVersion(version1, longName, docid + "/default",
                    Database.CORCODE, null, true);
            ScratchVersion corcodePages = new ScratchVersion(version1, longName, docid + "/pages",
                    Database.CORCODE, null, true);
            ScratchVersion text = new ScratchVersion(version1, longName, docid, Database.CORTEX, null, true);
            this.style = ScratchVersionSet.getDefaultStyleName(docid);
            for (int i = 0; i < layers.size(); i++) {
                JSONObject layer = (JSONObject) layers.get(i);
                String name = (String) layer.get(JSONKeys.NAME);
                String html = (String) layer.get(JSONKeys.BODY);
                stil = new STILDocument(style);
                pages = new STILDocument(style);
                // reduce html to text, corcode-default and corcode-pages
                Document doc = Jsoup.parseBodyFragment(html);
                Element body = doc.body();
                parseBody(body);
                int num = ScratchVersion.layerNumber(name);
                text.addLayer(sb.toString().toCharArray(), num);
                corcodeDefault.addLayer(stil.toString().toCharArray(), num);
                corcodePages.addLayer(pages.toString().toCharArray(), num);
            }
            Scratch.save(text);
            Scratch.save(corcodeDefault);
            Scratch.save(corcodePages);
            response.setContentType("text/plain");
            response.getWriter().write("OK");
        }
    } catch (Exception e) {
        System.out.println(e.getMessage());
        throw new MMLException(e);
    }
}

From source file:eu.serco.dhus.plugin.slstr.SlstrPlugin.java

public Object process(Object input) {
    List<Response> result = new ArrayList<Response>();

    String filename = input.toString();
    if (filename == null) {
        System.out.println("[ERROR]: null filename. Process aborted.");
        return result;
    }/* w  w  w . j  a  v a 2  s . c om*/
    try {
        String productType = filename.substring(4, 15);
        String startTime = filename.substring(16, 31);
        String stopTime = filename.substring(32, 47);
        if (map.containsKey(productType)) {
            List<Request> requestList = retrieveRequests(productType, startTime, stopTime);
            List<RequestTask> tasks = new ArrayList<RequestTask>();
            for (Request aux_request : requestList) {
                Response response = new Response();
                response.setMandatory(aux_request.getMandatory());
                logger.info("requestList.size() " + requestList.size());
                logger.info("aux_request.getRequests().size() " + aux_request.getRequests().size());
                List<InputRequest> requestsMap = aux_request.getRequests();

                for (InputRequest inReqs : requestsMap) {

                    tasks.add(new RequestTask(inReqs.getUrl(), inReqs.getType(), inReqs.getRetrievalMode(),
                            hashedString, SlstrPlugin.executor));
                    logger.info("url added to tasks list " + inReqs);
                }
                while (!tasks.isEmpty()) {
                    List<Object> responses = new ArrayList<Object>();
                    logger.info("tasks size..... " + tasks.size());

                    for (Iterator<RequestTask> it = tasks.iterator(); it.hasNext();) {
                        RequestTask task = it.next();
                        OutputResponse outRes = new OutputResponse();
                        if (task.isDone()) {
                            String req = task.getRequest();
                            String type = task.getRequestType();
                            logger.info("Request task.getRequest() " + req);
                            String res = task.getResponse();
                            logger.info("Response task.getResponse() " + res);
                            JSONArray jsonResponse = (JSONArray) new JSONParser().parse(res);
                            JSONArray jsonResult;
                            logger.info("How is the response?????" + jsonResponse);
                            if (jsonResponse != null) {
                                logger.info("How long is the response?????" + jsonResponse.size());
                            }
                            if (task.getRetrievalMode().equalsIgnoreCase("LatestValidityClosest")
                                    && jsonResponse != null && jsonResponse.size() > 0) {
                                jsonResult = getLatestValidityClosestInput(startTime, stopTime, jsonResponse);
                            } else {
                                jsonResult = jsonResponse;
                            }
                            outRes.setResponse(jsonResult);
                            outRes.setType(type);
                            responses.add(outRes);

                            it.remove();
                        }
                    }
                    response.setFiles(responses);
                    // avoid tight loop in "main" thread
                    if (!tasks.isEmpty())
                        Thread.sleep(100);
                }
                result.add(response);
            }

        }
    } catch (Exception e) {
        logger.error("[ERROR]: Problems occurred during file processing: " + e.getMessage());
        e.printStackTrace();
    }
    return result;
}

From source file:com.google.android.gcm.server.SenderTest.java

private void assertRequestJsonBody(String... expectedRegIds) throws Exception {
    ArgumentCaptor<String> capturedBody = ArgumentCaptor.forClass(String.class);
    verify(sender).post(eq(Constants.GCM_SEND_ENDPOINT), eq("application/json"), capturedBody.capture());
    // parse body
    String body = capturedBody.getValue();
    JSONObject json = (JSONObject) jsonParser.parse(body);
    assertEquals(ttl, ((Long) json.get("time_to_live")).intValue());
    assertEquals(collapseKey, json.get("collapse_key"));
    assertEquals(delayWhileIdle, json.get("delay_while_idle"));
    @SuppressWarnings("unchecked")
    Map<String, Object> payload = (Map<String, Object>) json.get("data");
    assertNotNull("no payload", payload);
    assertEquals("wrong payload size", 3, payload.size());
    assertEquals("v1", payload.get("k1"));
    assertEquals("v2", payload.get("k2"));
    assertEquals("v3", payload.get("k3"));
    JSONArray actualRegIds = (JSONArray) json.get("registration_ids");
    assertEquals("Wrong number of regIds", expectedRegIds.length, actualRegIds.size());
    for (int i = 0; i < expectedRegIds.length; i++) {
        String expectedRegId = expectedRegIds[i];
        String actualRegId = (String) actualRegIds.get(i);
        assertEquals("invalid regId at index " + i, expectedRegId, actualRegId);
    }/*from w ww  .ja v  a  2 s.com*/
}

From source file:com.googlecode.fascinator.portal.process.RecordProcessor.java

/**
 * 'post' - processing method.//from  w ww .jav  a 2s.  com
 * 
 * he 'inputKey' entry in the dataMap contains ids queued for resending.
 * This is merged with the 'includeList' and persisted on the config file.
 * The 'lastRun' is updated and persisted as well.
 * 
 * @param id
 * @param inputKey
 * @param configFilePath
 * @param dataMap
 * @return
 * @throws Exception
 */
private boolean postProcess(String id, String inputKey, String configFilePath, HashMap<String, Object> dataMap)
        throws Exception {
    File configFile = new File(configFilePath);
    SimpleDateFormat dtFormat = new SimpleDateFormat("yyy-MM-dd'T'HH:mm:ss'Z'");
    JsonSimple config = new JsonSimple(configFile);
    config.getJsonObject().put("lastrun", dtFormat.format(new Date()));
    Collection<String> oids = (Collection<String>) dataMap.get(inputKey);
    JSONArray includedArr = config.getArray("includeList");
    if (oids != null && oids.size() > 0) {
        // some oids failed, writing it to inclusion list so it can be sent
        // next time...
        if (includedArr == null) {
            includedArr = config.writeArray("includeList");
        }
        includedArr.clear();
        for (String oid : oids) {
            includedArr.add(oid);
        }
    } else {
        // no oids failed, all good, clearing the list...
        if (includedArr != null && includedArr.size() > 0) {
            includedArr.clear();
        }
    }
    FileWriter writer = new FileWriter(configFile);
    writer.write(config.toString(true));
    writer.close();
    return true;
}

From source file:gov.usda.DataCatalogClient.Catalog.java

/**
 * Populates catalog from Project Open Data compliant json object
 * // w ww  .  j a v  a  2s. com
 * @param catalogObject
 */
public void loadFromProjectOpenDataJSON(JSONObject catalogObject) throws CatalogException {
    if (catalogObject == null) {
        throw (new NullPointerException("catalogObject cannot be null"));
    }
    setConformsTo((String) catalogObject.get(PROJECT_OPEN_DATA_CATALOG_CONFORMS_TO));
    setDescribedBy((String) catalogObject.get(PROJECT_OPEN_DATA_CATALOG_DESCRIBED_BY));
    setContext((String) catalogObject.get(PROJECT_OPEN_DATA_CATALOG_CONTEXT));
    setType((String) catalogObject.get(PROJECT_OPEN_DATA_CATALOG_TYPE));

    final JSONArray dataSetArray = (JSONArray) catalogObject.get(Dataset.PROJECT_OPEN_DATA_DATASET);
    for (int i = 0; i < dataSetArray.size(); i++) {
        final Dataset ds = new Dataset();
        final JSONObject dataSetObject = (JSONObject) dataSetArray.get(i);
        try {
            ds.loadFromProjectOpenDataJSON(dataSetObject);
            dataSetList.add(ds);
        } catch (DatasetException e) {
            catalogException.addError(e.toString());
        }
    }

    addBureauNameToDataset();
    Collections.sort(dataSetList);

    if (!validateCatalog() || catalogException.exceptionSize() > 0) {
        throw (catalogException);
    }
}