Note that there are some explanatory texts on larger screens.

plurals
  1. POAfter retrieving JSON elements dynamically, how to remove duplicates values? Arraylist? HashMap?
    text
    copied!<p>I have suggestion saying storing the elements in arraylist then do a comparison, and i also hear people suggesting to use HashMap. However, i am very very new to Java, i got no idea what is arraylist and what is hashmap. Any kind soul to lead me?</p> <p>My json file:</p> <pre><code>{"rel": "IsA", "weight": 0.5, "dataset": "/d/dbpedia/en", "sources": ["/s/dbpedia/3.7"], "id": "914e6775fd79d660bacf22ec699568e6694da3e8", "features": ["america_beautiful IsA -", "america_beautiful - national_anthem", "- IsA national_anthem"], "end": "national_anthem", "license": "/l/CC/By-SA", "uri": "/a/[IsA/,america_beautiful/,national_anthem/]", "start": "america_beautiful", "context": "/ctx/all", "surfaceText": null} {"rel": "PartOf", "weight": 0.5, "dataset": "/d/dbpedia/en", "sources": ["/s/dbpedia/3.7"], "id": "a2c3ddf6b6237156dbeac84eea2801d35a9562d4", "features": ["ankara PartOf -", "ankara - central_anatolia_region", "- PartOf central_anatolia_region"], "end": "central_anatolia_region", "license": "/l/CC/By-SA", "uri": "/a/[PartOf/,ankara/,central_anatolia_region/]", "start": "ankara", "context": "/ctx/all", "surfaceText": null} {"rel": "AtLocation", "weight": 0.5, "dataset": "/d/dbpedia/en", "sources": ["/s/dbpedia/3.7"], "id": "ec1914bfb0606c36376fbbcd316e5666022e2469", "features": ["apple_inc AtLocation -", "apple_inc - unite_state", "- AtLocation unite_state"], "end": "unite_state", "license": "/l/CC/By-SA", "uri": "/a/[AtLocation/,apple_inc/,unite_state/]", "start": "apple_inc", "context": "/ctx/all", "surfaceText": null} {"rel": "AtLocation", "weight": 0.5, "dataset": "/d/dbpedia/en", "sources": ["/s/dbpedia/3.7"], "id": "0209765bf7185615ef242513f61ca0f61efe2a04", "features": ["audi AtLocation -", "audi - curitiba", "- AtLocation curitiba"], "end": "curitiba", "license": "/l/CC/By-SA", "uri": "/a/[AtLocation/,audi/,curitiba/]", "start": "audi", "context": "/ctx/all", "surfaceText": null} {"rel": "AtLocation", "weight": 0.5, "dataset": "/d/dbpedia/en", "sources": ["/s/dbpedia/3.7"], "id": "5158d1cfce728efb3e42840d166ec06153a3d77d", "features": ["audi AtLocation -", "audi - ingolstadt", "- AtLocation ingolstadt"], "end": "unite_state", "license": "/l/CC/By-SA", "uri": "/a/[AtLocation/,audi/,ingolstadt/]", "start": "audi", "context": "/ctx/all", "surfaceText": null} </code></pre> <p>My java file:</p> <pre><code>package com.infinitegraph.samples.hellograph; // Import all InfiniteGraph packages import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import com.infinitegraph.*; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; // Import SLF4J logging packages import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.infinitegraph.BaseVertex; import java.util.HashMap; import java.util.ArrayList; public class HelloGraph { public static void main(String[] args) { BufferedReader br = null; JSONParser parser = new JSONParser(); // Set up logging for the HelloGraph class Logger logger = LoggerFactory.getLogger(HelloGraph.class); // Create null transaction, null graph database instance Transaction tx = null; GraphDatabase helloGraphDB = null; // Name for graph database and property file String graphDbName = "HelloGraph"; String propertiesFileName = "HelloGraph.properties"; try { try { // Delete graph database if it already exists GraphFactory.delete(graphDbName, propertiesFileName); } catch (StorageException sE) { logger.info(sE.getMessage()); } // HINT: Add code to create graph database and its contents // Create graph database logger.info("&gt; Creating graph database ..."); GraphFactory.create(graphDbName, propertiesFileName); // Open graph database logger.info("&gt; Opening graph database ..."); helloGraphDB = GraphFactory.open(graphDbName, propertiesFileName); // Begin transaction logger.info("&gt; Starting a read/write transaction ..."); tx = helloGraphDB.beginTransaction(AccessMode.READ_WRITE); //create head vertex HeaderVertex head = new HeaderVertex("JSON File"); helloGraphDB.addVertex(head); try { String sCurrentLine; br = new BufferedReader(new FileReader("C:/Users/ji/Desktop/example.json")); while ((sCurrentLine = br.readLine()) != null) { Object obj; try { obj = parser.parse(sCurrentLine); JSONObject jsonObject = (JSONObject) obj; //code to create vertex logger.info("&gt; Creating Start vertices ..."); String start = (String) jsonObject.get("start"); StartVertex startV = new StartVertex(start); helloGraphDB.addVertex(startV); String end = (String) jsonObject.get("end"); //System.out.println(end); EndVertex endV = new EndVertex(end); helloGraphDB.addVertex(endV); String rel = (String) jsonObject.get("rel"); //System.out.println(rel); logger.info("&gt; Creating Relationship edge ..."); Relationship relationship1 = new Relationship(""); Relationship relationship2 = new Relationship(rel); // Connect edges logger.info("&gt; Connecting vertices ..."); startV.addEdge(relationship1, head, EdgeKind.BIDIRECTIONAL, (short) 0); endV.addEdge(relationship2, startV, EdgeKind.BIDIRECTIONAL, (short) 0); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } catch (IOException e) { e.printStackTrace(); } finally { try { if (br != null)br.close(); } catch (IOException ex) { ex.printStackTrace(); } } // Specify a named root for traversal logger.info("&gt; Naming a root vertex ..."); helloGraphDB.nameVertex("JSON File", head); // Commit to save your changes to the graph database logger.info("&gt; Committing changes ..."); tx.commit(); } catch (ConfigurationException cE) { logger.warn("&gt; Configuration Exception was thrown ... "); logger.error(cE.getMessage()); } finally { // If the transaction was not committed, complete // will roll it back if (tx != null) tx.complete(); if (helloGraphDB != null) { helloGraphDB.close(); logger.info("&gt; On Exit: Closed graph database"); } } } } // HINT: Add class definitions for Person and Meeting classes here. class HeaderVertex extends BaseVertex { private String header; public HeaderVertex (String header) { setStartName(header); } public void setStartName (String header) { markModified(); this.header = header; } public String toString() { fetch(); return this.header; } } class StartVertex extends BaseVertex { private String start; public StartVertex (String start) { setStartName(start); } public void setStartName (String start) { markModified(); this.start = start; } public String toString() { fetch(); return this.start; } } class EndVertex extends BaseVertex { private String end; public EndVertex (String end) { setEndVertex(end); } public void setEndVertex (String end) { markModified(); this.end = end; } public String toString() { fetch(); return this.end; } } class Relationship extends BaseEdge { private String rel; public Relationship (String rel) { setRelationship(rel); } public void setRelationship (String rel) { markModified(); this.rel = rel; } public String toString() { fetch(); return this.rel; } } </code></pre> <p>All helps are appreciated! Please help me this coding noob! :( Thank you!</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload