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.ge.research.semtk.load.utility.ImportSpecHandler.java

/**
 * Sets this.colsUsed to number of times each column is used.  Skipping ZEROS.
 *///from   ww w .j  a  v  a  2  s . c o m
private void setupColsUsed() {
    // clear cols used
    colsUsed = new HashMap<String, Integer>();

    JSONArray nodes = (JSONArray) importspec.get("nodes");

    for (int i = 0; i < nodes.size(); i++) {
        JSONObject node = (JSONObject) nodes.get(i);

        // check mappings in nodes
        if (node.containsKey("mapping")) {
            JSONArray mapItems = (JSONArray) node.get("mapping");
            for (int j = 0; j < mapItems.size(); j++) {
                JSONObject item = (JSONObject) mapItems.get(j);
                if (item.containsKey("colId")) {
                    String colId = (String) item.get("colId");
                    if (colsUsed.containsKey(colId)) {
                        colsUsed.put(colId, colsUsed.get(colId) + 1);
                    } else {
                        colsUsed.put(colId, 1);
                    }
                }
            }
        }
        if (node.containsKey("props")) {
            JSONArray propItems = (JSONArray) node.get("props");
            for (int p = 0; p < propItems.size(); p++) {
                JSONObject prop = (JSONObject) propItems.get(p);

                // check mappings in props
                if (prop.containsKey("mapping")) {
                    JSONArray mapItems = (JSONArray) prop.get("mapping");
                    for (int j = 0; j < mapItems.size(); j++) {
                        JSONObject item = (JSONObject) mapItems.get(j);
                        if (item.containsKey("colId")) {
                            String colId = (String) item.get("colId");
                            if (colsUsed.containsKey(colId)) {
                                colsUsed.put(colId, colsUsed.get(colId) + 1);
                            } else {
                                colsUsed.put(colId, 1);
                            }
                        }
                    }
                }
            }
        }
    }
}

From source file:hoot.services.controllers.job.JobResource.java

private JSONObject execReflectionSync(String jobId, String childJobId, JSONObject job,
        JobStatusManager jobStatusManager) throws Exception {
    String className = job.get("class").toString();
    String methodName = job.get("method").toString();

    String internalJobId = (job.get("internaljobid") == null) ? null : job.get("internaljobid").toString();

    JSONArray paramsList = (JSONArray) job.get("params");

    Class<?>[] paramTypes = new Class[paramsList.size()];
    Object[] parameters = new Object[paramsList.size()];
    for (int i = 0; i < paramsList.size(); i++) {
        JSONObject param = (JSONObject) paramsList.get(i);
        String paramType = param.get("paramtype").toString();
        Object oIsPrim = param.get("isprimitivetype");
        if ((oIsPrim != null) && oIsPrim.toString().equalsIgnoreCase("true")) {
            Class<?> classWrapper = Class.forName(paramType);
            paramTypes[i] = (Class<?>) classWrapper.getField("TYPE").get(null);
        } else {/*from  www. j av  a2s .  c  o  m*/
            paramTypes[i] = Class.forName(paramType);
        }
        parameters[i] = param.get("value");
    }

    Class<?> clazz = Class.forName(className);
    Object instance = clazz.newInstance();

    JSONObject childJobInfo;
    String currentChildJobId = childJobId;

    // May be we would need create interface to guarranttee that it will
    // return a job id?  Add internal job id to end of method call
    if (internalJobId != null) {
        currentChildJobId = internalJobId;
        childJobInfo = createChildInfo(currentChildJobId, JOB_STATUS.RUNNING.toString());
        setJobInfo(jobInfo, childJobInfo, childrenInfo, JOB_STATUS.RUNNING.toString(), "processing");
        jobStatusManager.updateJob(jobId, jobInfo.toString());

        Object[] newParams = new Object[paramsList.size() + 1];
        System.arraycopy(parameters, 0, newParams, 0, parameters.length);
        newParams[parameters.length] = internalJobId;

        Class<?>[] newParamTypes = new Class[paramsList.size() + 1];
        System.arraycopy(paramTypes, 0, newParamTypes, 0, paramsList.size());
        newParamTypes[parameters.length] = String.class;
        Method method = clazz.getDeclaredMethod(methodName, newParamTypes);
        // This will blow if the method is not designed to handle job id
        method.invoke(instance, newParams);
    } else {
        Method method = clazz.getDeclaredMethod(methodName, paramTypes);
        Object oReflectJobId = method.invoke(instance, parameters);
        if (oReflectJobId != null) {
            currentChildJobId = oReflectJobId.toString();
        }

        // Updating job status info. Looks like we need to wait till job is
        // done to get job id. With this we can not canel..
        childJobInfo = createChildInfo(currentChildJobId, JobStatusManager.JOB_STATUS.RUNNING.toString());
        setJobInfo(jobInfo, childJobInfo, childrenInfo, JOB_STATUS.RUNNING.toString(), "processing");
        jobStatusManager.updateJob(jobId, jobInfo.toString());
    }

    return childJobInfo;
}

From source file:mml.handler.get.MMLGetMMLHandler.java

/**
 * Build a quick lookup ltable for lineformats
 *//*from ww w  .j  a v  a 2  s.  co m*/
void buildLineFormats() {
    JSONArray lfs = (JSONArray) this.dialect.get("lineformats");
    this.lineFormats = new HashSet<String>();
    for (int i = 0; i < lfs.size(); i++) {
        JSONObject lf = (JSONObject) lfs.get(i);
        String lfProp = (String) lf.get("prop");
        lineFormats.add(lfProp);
    }
}

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

/**
 * Test the getMostPopularTags method./*www.  j  a  v  a2 s  .co  m*/
 * 
 * NOTE: this Test may fail on an productive system, where other tags were
 * more popular than the "test" tag. "Bundestag" tag is relevant only in OC
 * dev platform.
 */
@Test
public void testGetMostPopularTags() {
    log.fine("########### MOST POPULAR TAGS ###########");
    // get the most popular tags
    JSONArray arr = ckanGW.getMostPopularTags(10);
    // assertEquals(true, arr.toJSONString().contains("bundestag"));
    log.fine(arr.toString());
    assertEquals(10, arr.size());
}

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

/**
 * This one is buggy e.g.<br>//  w ww  .  j  a v a2s  . c  o  m
 * works for this URL:<br>
 * http://www.eionet.europa.eu/gemet/getRelatedConcepts?concept_uri=http://www.eionet.europa.eu/gemet/group/10117&relation_uri=http://www.eionet.europa.eu/gemet/2004/06/gemet-schema.rdf%23groupMember&language=de
 * <br>
 * but NOT for this one:<br>
 * http://www.eionet.europa.eu/gemet/getRelatedConcepts?concept_uri=http://www.eionet.europa.eu/gemet/group/10114&relation_uri=http://www.eionet.europa.eu/gemet/2004/06/gemet-schema.rdf%23groupMember&language=de
 * @param conceptUri
 * @param language
 * @return
 */
// @formatter:on
protected List<JSONArray> getChildConceptsViaGetRelatedConcepts(String conceptUri, String language) {
    // child relations
    ConceptRelation[] relations = null;
    if (isGroup(conceptUri)) {
        // for groups the relation is "groupMember"
        relations = new ConceptRelation[] { ConceptRelation.GROUP_MEMBER };
    } else {
        // for concepts and soupergroups the relation is "narrower"
        relations = new ConceptRelation[] { ConceptRelation.NARROWER };
    }

    // get children
    List<JSONArray> conceptList = new ArrayList<JSONArray>();
    for (ConceptRelation relation : relations) {
        JSONArray concepts = getRelatedConcepts(conceptUri, relation, language);

        // we have to filter GROUP_MEMBER !
        // we use only those having NO BROADER concept meaning their only
        // parent is the group !
        if (relation == ConceptRelation.GROUP_MEMBER && concepts.size() > 0) {
            JSONArray groupConcepts = new JSONArray();
            for (Object concept : concepts) {
                if (!hasRelation(JSONUtils.getId((JSONObject) concept), ConceptRelation.BROADER, language)) {
                    groupConcepts.add(concept);
                }
            }
            concepts = groupConcepts;
        }

        conceptList.add(concepts);
    }

    return conceptList;
}

From source file:carolina.pegaLatLong.LatLong.java

private void buscaLtLong(List<InformacoesTxt> lista) throws MalformedURLException, IOException, ParseException {
    String status = "Processando...";
    edtEncontrados.setText("Encontrados:");
    edtNaoEncontrados.setText("No encontrados:");
    edtMaisDeUm.setText("Mais de um encontrados:");
    edtProcessados.setText("Processados:");
    edtStatus.setText(status);//w w  w . j  ava2s  . com
    int processados = 1;

    URL ul;

    for (InformacoesTxt in : lista) {
        if (processados == 2499) {
            break;
        }
        edtProcessados.setText("Processados: " + processados);
        String resto = "";
        String vet[] = in.getEndereco().split(" ");

        for (String vet1 : vet) {
            resto += vet1 + "+";
        }

        //            String vet2[] = in.getBairro().split(" ");
        //            for (String vet21 : vet2) {
        //                resto += vet21 + "+";
        //            }
        //
        //            String vet3[] = in.getCep().split(" ");
        //            for (String vet31 : vet3) {
        //                resto += vet31 + "+";
        //            }
        String vet4[] = in.getCidade().split(" ");
        for (String vet41 : vet4) {
            resto += vet41 + "+";
        }

        ul = new URL("https://maps.googleapis.com/maps/api/geocode/json?address=" + resto
                + "&key=AIzaSyDFg9GJIbgHKbZP3b5H2qRV_cAhhvlBaoE");
        //System.err.println("URL: " + ul);
        HttpURLConnection conn = (HttpURLConnection) ul.openConnection();
        // conn.setRequestMethod("GET");
        //conn.setRequestProperty("Accept", "application/json");

        if (conn.getResponseCode() != 200) {
            listaBadRequest.add(in);
            System.err.println("Codigo: " + conn.getResponseMessage());
            //System.err.println("URL: " + ul);
            //JOptionPane.showMessageDialog(null, "Falha ao obter a localizao!");
            //break;
        } else {
            BufferedReader bf = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String pega = "";
            String result = "";
            while ((pega = bf.readLine()) != null) {
                result += pega;
            }
            System.err.println(result);

            org.json.simple.parser.JSONParser parser = new org.json.simple.parser.JSONParser();
            Object obj = parser.parse(result);

            JSONObject tudo = (JSONObject) obj;

            JSONArray arrayResultado = (JSONArray) tudo.get("results");
            if (arrayResultado.isEmpty()) {
                listaNaoEncontrados.add(in);
                edtNaoEncontrados.setText("No encontrados: " + listaNaoEncontrados.size());
            } else if (arrayResultado.size() == 1) {
                JSONObject primeiro = (JSONObject) arrayResultado.get(0);
                JSONObject jsonObject3 = (JSONObject) primeiro.get("geometry");
                JSONObject location = (JSONObject) jsonObject3.get("location");
                InformacaoGerada gerado = new InformacaoGerada();
                gerado.setEnderecoFormatado(primeiro.get("formatted_address").toString());
                String latitude = location.get("lat").toString().replace(".", ",");
                gerado.setLatitude(latitude);
                String longitude = location.get("lng").toString().replace(".", ",");
                gerado.setLongitude(longitude);
                listaResultado.add(gerado);
                edtEncontrados.setText("Encontrados: " + listaResultado.size());
            } else {
                listaMaisDeUm.add(in);
                edtMaisDeUm.setText("Mais de um encontrados: " + listaMaisDeUm.size());
            }

            //                System.err.println("Endereo Formatado: " + primeiro.get("formatted_address"));
            //                System.out.println("Lat = " + location.get("lat"));
            //                System.out.println("Lng = " + location.get("lng"));
        }

        processados++;
    }

    edtStatus.setForeground(Color.GREEN);
    edtStatus.setText("Concludo");
    btnGerar.setEnabled(true);

}

From source file:hoot.services.controllers.job.JobResourceTest.java

/**
 * Tests processChainJob in happy route/*w w  w .j  a  v  a  2  s .c o  m*/
 *
 * @throws Exception
 */
@Test
@Category(UnitTest.class)
public void testProcessChainJob() throws Exception {
    // Create Mock JobStatusManager Class
    JobStatusManager mockJobStatusManager = Mockito.mock(JobStatusManager.class);
    Mockito.doNothing().when(mockJobStatusManager).addJob(Matchers.anyString());
    Mockito.doNothing().when(mockJobStatusManager).updateJob(Matchers.anyString(), Matchers.anyString());
    Mockito.doNothing().when(mockJobStatusManager).setComplete(Matchers.anyString(), Matchers.anyString());
    Mockito.doNothing().when(mockJobStatusManager).setFailed(Matchers.anyString(), Matchers.anyString());

    // Mock child info
    JSONObject mockChild = new JSONObject();
    mockChild.put("id", "test_child_123");
    mockChild.put("detail", "processing");
    mockChild.put("status", "running");

    JobResource real = new JobResource();
    JobResource spy = Mockito.spy(real);

    Mockito.doReturn(Response.ok().build()).when(spy).processJob(Matchers.anyString(),
            Matchers.any(String.class));
    Mockito.doReturn(mockJobStatusManager).when(spy).createJobStatusMananger(Matchers.any(Connection.class));
    Mockito.doReturn(mockChild).when(spy).execReflection(Matchers.anyString(), Matchers.any(JSONObject.class),
            Matchers.any(JobStatusManager.class));

    String jobStr = "[{\"caller\":\"FileUploadResource\",\"exec\":\"makeetl\","
            + "\"params\":[{\"INPUT\":\"upload\\/81898818-2ca3-4a15-9421-50eb91952586\\/GroundPhotos.shp\"},"
            + "{\"INPUT_TYPE\":\"OGR\"},{\"TRANSLATION\":\"translations\\/UTP.js\"},{\"INPUT_NAME\":\"GroundPhotos\"}],"
            + "\"exectype\":\"make\"},{\"class\":\"hoot.services.controllers.ingest.RasterToTilesService\","
            + "\"method\":\"ingestOSMResource\",\"params\":[{\"isprimitivetype\":\"false\",\"value\":\"GroundPhotos\","
            + "\"paramtype\":\"java.lang.String\"}],\"exectype\":\"reflection\"}]";

    spy.processChainJob("test_job_id_1234", jobStr);

    // sleep for a couple of secs to make sure that all threads spawned by the call to spy.processChainJob() finish
    Thread.sleep(2000);

    class validParam2Matcher extends ArgumentMatcher<JSONObject> {

        @Override
        public boolean matches(Object argument) {
            JSONObject param = (JSONObject) argument;
            boolean val1 = param.get("class").toString()
                    .equals("hoot.services.controllers.ingest.RasterToTilesService");
            boolean val2 = param.get("method").toString().equals("ingestOSMResource");
            boolean val3 = param.get("exectype").toString().equals("reflection");

            JSONArray params = (JSONArray) param.get("params");
            JSONObject innerParam = (JSONObject) params.get(0);
            boolean val4 = innerParam.get("isprimitivetype").toString().equals("false");
            boolean val5 = innerParam.get("value").toString().equals("GroundPhotos");
            boolean val6 = innerParam.get("paramtype").toString().equals("java.lang.String");

            return val1 && val2 && val3 && val4 && val5 && val6;
        }
    }

    Mockito.verify(spy).execReflection(Matchers.matches("test_job_id_1234"),
            Matchers.argThat(new validParam2Matcher()), Matchers.any(JobStatusManager.class));

    ArgumentCaptor<String> argCaptor = ArgumentCaptor.forClass(String.class);

    Mockito.verify(mockJobStatusManager, Mockito.times(3)).updateJob(Matchers.anyString(), argCaptor.capture());

    JSONParser parser = new JSONParser();

    List<String> args = argCaptor.getAllValues();
    JSONObject status = (JSONObject) parser.parse(args.get(0));
    JSONArray children = (JSONArray) status.get("children");
    JSONObject child = (JSONObject) children.get(0);

    Assert.assertEquals("processing", child.get("detail").toString());
    Assert.assertEquals("running", child.get("status").toString());

    status = (JSONObject) parser.parse(args.get(1));
    children = (JSONArray) status.get("children");
    Assert.assertEquals(1, children.size());

    child = (JSONObject) children.get(0);
    Assert.assertEquals("success", child.get("detail").toString());
    Assert.assertEquals("complete", child.get("status").toString());

    status = (JSONObject) parser.parse(args.get(2));
    children = (JSONArray) status.get("children");
    Assert.assertEquals(2, children.size());

    child = (JSONObject) children.get(0);
    Assert.assertEquals("success", child.get("detail").toString());
    Assert.assertEquals("complete", child.get("status").toString());

    child = (JSONObject) children.get(1);
    Assert.assertEquals("success", child.get("detail").toString());
    Assert.assertEquals("complete", child.get("status").toString());

    ArgumentCaptor<String> setCompleteArgCaptor = ArgumentCaptor.forClass(String.class);

    Mockito.verify(mockJobStatusManager, Mockito.times(1)).setComplete(Matchers.anyString(),
            setCompleteArgCaptor.capture());

    args = setCompleteArgCaptor.getAllValues();
    status = (JSONObject) parser.parse(args.get(0));
    children = (JSONArray) status.get("children");

    Assert.assertEquals(2, children.size());

    child = (JSONObject) children.get(0);
    Assert.assertEquals("success", child.get("detail").toString());
    Assert.assertEquals("complete", child.get("status").toString());

    child = (JSONObject) children.get(1);
    Assert.assertEquals("success", child.get("detail").toString());
    Assert.assertEquals("complete", child.get("status").toString());
}

From source file:jp.aegif.nemaki.rest.GroupResource.java

@SuppressWarnings("unchecked")
@GET//from ww  w.  j  ava  2s  . co m
@Path("/search")
@Produces(MediaType.APPLICATION_JSON)
public String search(@PathParam("repositoryId") String repositoryId, @QueryParam("query") String query) {
    boolean status = true;
    JSONObject result = new JSONObject();
    JSONArray errMsg = new JSONArray();

    List<Group> groups = this.principalService.getGroups(repositoryId);
    JSONArray queriedGroups = new JSONArray();

    for (Group g : groups) {
        if (g.getGroupId().startsWith(query) || g.getName().startsWith(query)) {
            queriedGroups.add(this.convertGroupToJson(g));
        }
    }

    if (queriedGroups.size() == 0) {
        status = false;
        addErrMsg(errMsg, ITEM_GROUP, ErrorCode.ERR_NOTFOUND);
    } else {
        result.put("result", queriedGroups);
    }

    result = makeResult(status, result, errMsg);
    return result.toString();
}

From source file:de.fhg.fokus.odp.middleware.ckan.CKANGatewayUtil.java

/**
 * The function returns all meta data sets filtered according to the
 * maintainer email. The function returns a HashMap with key=metadataSetId
 * and value=HashMap(with Key = MetaDataEntryKey and value =
 * MetaDataEntryValue)./*from w w w .j  a v a2s .  c om*/
 * 
 * @param maintainerEmail
 *            the maintainer email.
 * @param fileFormat
 *            the file format to filter for.
 * 
 * @return the the hash map as described in the general comments of the
 *         method or null if anything has gone wrong.
 */
@SuppressWarnings("rawtypes")
public static HashMap<String, HashMap> viewDataSets(String maintainerEmail, String fileFormat) {

    // check the input parameters
    if (maintainerEmail == null || maintainerEmail.equals("") || fileFormat == null
            || fileFormat.trim().equals("")) {
        return null;
    }

    // prepare the REST API call
    String RESTcall = API_URI + "?maintainer_email=";
    maintainerEmail = maintainerEmail.replaceAll("@", "%40;");
    RESTcall += maintainerEmail;

    // the variable to return
    HashMap<String, HashMap> toreturn = new HashMap<String, HashMap>();

    try {
        // run the REST call to obtain all packages
        String packageListString = connectorInstance.restCall(RESTcall);
        if (packageListString == null) {
            log.log(Level.SEVERE, "Failed to realize api call \"" + url + RESTcall + "\" !!!");
            return null;
        }

        // parse the JSON string and obtain an array of JSON objects
        Object obj = JSONValue.parse(packageListString);
        Map m = (Map) obj;
        JSONArray array = (JSONArray) (m.get("results"));
        if (array == null) {
            return null;
        }

        // move over the JSON array
        for (int i = 0; i < array.size(); i++) {

            // get details for each single package
            String RESTcallPackage = API_URI + "/" + array.get(i);
            String packageStr = connectorInstance.restCall(RESTcallPackage);

            if (packageStr == null) {
                log.log(Level.SEVERE, "Failed to obtain details for package \"" + packageStr + "\"");
                continue;
            }

            // parse the string for the package
            Object packageObj = JSONValue.parse(packageStr);
            HashMap helpMap = (HashMap) packageObj;

            // check whether at least one of the given resources matches the
            // required file format
            boolean matchesFormat = false;
            JSONArray arr = (JSONArray) (helpMap.get("resources"));
            for (int j = 0; j < arr.size(); j++) {
                HashMap rMap = (HashMap) arr.get(j);
                String format = (String) rMap.get("format");
                if (format == null) {
                    format = "";
                }
                format = format.trim();
                if (format.equals(fileFormat)) {
                    matchesFormat = true;
                }
            }

            if (matchesFormat == false) {
                continue;
            }

            // if all filters passed --> add to the hashmap to return
            toreturn.put((String) array.get(i), helpMap);
        }
    } catch (MalformedURLException e) {
        log.log(Level.SEVERE, "Failed to realize api call \"" + url + RESTcall + "\" !!!");
        return null;
    } catch (IOException e) {
        return null;
    }

    return toreturn;
}

From source file:assignment3.Populate.java

CreateBusiness() {
    try {//  ww w  .j  ava 2s .c  o m

        Class.forName("oracle.jdbc.driver.OracleDriver");

    } catch (ClassNotFoundException e) {

        System.out.println("JDBC Driver Missing");
        e.printStackTrace();
        return;

    }

    System.out.println("Oracle JDBC Driver Connected");

    Connection conn = null;
    PreparedStatement ps = null;
    PreparedStatement psbusinesscat = null;
    PreparedStatement pscate = null;
    try {

        conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "MAYUR", "123456");

        JSONParser parser = new JSONParser();
        BufferedReader br = new BufferedReader(new FileReader(
                "C:\\Users\\mayur\\Downloads\\YelpDataset\\YelpDataset-CptS451\\yelp_business.json"));
        // BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\mayur\\Downloads\\YelpDataset\\YelpDataset-CptS451\\smallbusiness.json"));

        int batch = 200;
        int count = 0;
        String sCurrentLine = "";
        String temp = "";
        ArrayList<String> cat = new ArrayList<String>();
        cat.add("Active Life");
        cat.add("Arts & Entertainment");
        cat.add("Automotive");
        cat.add("Car Rental");
        cat.add("Cafes");
        cat.add("Beauty & Spas");
        cat.add("Convenience Stores");
        cat.add("Dentists");
        cat.add("Doctors");
        cat.add("Drugstores");
        cat.add("Department Stores");
        cat.add("Education");
        cat.add("Event Planning & Services");
        cat.add("Flower & Gifts");
        cat.add("Food");
        cat.add("Health & Medical");
        cat.add("Home Services");
        cat.add("Home & Gardens");
        cat.add("Hospitals");
        cat.add("Hotels & Travel");
        cat.add("Hardware Stores");
        cat.add("Grocery");
        cat.add("Medical Centers");
        cat.add("Nurseries & Gardening");
        cat.add("Nightlife");
        cat.add("Shopping");
        cat.add("Restaurants");
        cat.add("Transportation");

        while ((sCurrentLine = br.readLine()) != null) {

            conn.setAutoCommit(false);

            Object obj = parser.parse(sCurrentLine);

            JSONObject t = (JSONObject) obj;

            String business_id = t.get("business_id").toString();
            String city = t.get("city").toString();
            String state = t.get("state").toString();
            Long review_count = (Long) t.get("review_count");
            Double stars = (Double) t.get("stars");
            Double latitude = (Double) t.get("latitude");
            Double longitude = (Double) t.get("longitude");

            String business_name = t.get("name").toString();

            String type = t.get("type").toString();

            ps = conn.prepareStatement("insert into business values (?, ?, ?,?,?,?, ?, ?,?)");

            ps.setString(1, business_id);
            ps.setString(2, city);
            ps.setString(3, state);
            ps.setLong(4, review_count);
            ps.setDouble(5, stars);
            ps.setDouble(6, latitude);
            ps.setDouble(7, longitude);
            ps.setString(8, business_name);
            ps.setString(9, type);
            ps.executeUpdate();
            ps.close();
            conn.commit();

            psbusinesscat = conn.prepareStatement("insert into categories values (?,?,?)");

            JSONArray categories = (JSONArray) (t).get("categories");
            int numfriends = 0;
            if (categories.size() > 0) {
                ArrayList<String> categories_list = new ArrayList<String>();
                ArrayList<String> subcategories_list = new ArrayList<String>();
                ArrayList<String> list = new ArrayList<String>();
                // Retrive categories from json and seperate it as category and subcategory 
                for (int i = 0; i < categories.size(); i++) {
                    String tempCat = categories.get(i).toString();
                    if (cat.contains(tempCat))
                        categories_list.add(tempCat);
                    else
                        subcategories_list.add(tempCat);

                }

                psbusinesscat.setString(1, business_id);
                for (int i = 0; i < categories_list.size(); i++) {
                    System.out.println(categories_list.get(i) + " ");
                    psbusinesscat.setString(2, categories_list.get(i));
                    if (subcategories_list.size() > 0) {
                        // set category for business table   

                        for (int j = 0; j < subcategories_list.size(); j++) {
                            System.out.println("-" + subcategories_list.get(j));
                            psbusinesscat.setString(3, subcategories_list.get(j));
                            psbusinesscat.executeUpdate();

                            list.add(categories_list.get(i) + "~" + subcategories_list.get(j));

                            //insert into business categories list
                        }

                    } else {

                        psbusinesscat.setString(3, "");
                        psbusinesscat.executeUpdate();

                        System.out.println("");

                    }

                }
                psbusinesscat.close();
                conn.commit();

                List<String> deDupStringList = new ArrayList<>(new HashSet<>(list));

                pscate = conn.prepareStatement("insert into categoryclass values (?,?)");

                for (int i = 0; i < deDupStringList.size(); i++) {

                    pscate.setString(1,
                            deDupStringList.get(i).substring(0, deDupStringList.get(i).indexOf("~")));
                    System.out.println(deDupStringList.get(i).indexOf("~"));
                    pscate.setString(2,
                            deDupStringList.get(i).substring(deDupStringList.get(i).indexOf("~") + 1));

                    pscate.executeUpdate();

                }

                pscate.close();
            }
            conn.commit();

            count++;
            System.out.println("Record Number :" + count);
            if (count % 50 == 0) { //reload driver               
                conn.close();

                conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "MAYUR", "123456");

            }

        }

        System.out.println("Last record inserted is " + count);
        conn.commit();
        ps.close();
        conn.close();

    } catch (Exception e) {

        System.out.println("Connection Failed! Check output console");
        e.printStackTrace();
        return;

    } finally {
        try {
            ps.close();
            pscate.close();
            psbusinesscat.close();
            conn.close();
        } catch (Exception e) {

        }
    }
}