Object reader

Run
How to run the sample
The source code for this sample can be found in the javaee7-samples GitHub repository. The first thing we need to do is to get the source by downloading the repository and then go into the samples folder:
git clone git://github.com/javaee-samples/javaee7-samples.git
cd javaee7-samples/json/object-reader/
Now we are ready to start testing. You can run all the tests in this sample by executing:
mvn test
Or you can run individual tests by executing one of the following:
mvn test -Dtest=JsonReaderFromReaderTestmvn test -Dtest=JsonReaderFromStreamTest

  • Specifications in use:
    • JSON

    JsonReaderFromReaderTest

    Missing a description for the story. Add some javadoc to the TestClass. Show me how!
    Missing a description for the deployment. Add some javadoc to the @Deployment method. Show me how!
    @Deployment
    public static Archive<?> deploy() {
        File[] requiredLibraries = Maven.resolver().loadPomFromFile("pom.xml")
                .resolve("org.json:json", "org.skyscreamer:jsonassert")
                .withTransitivity().asFile();
    
        return ShrinkWrap.create(WebArchive.class)
                .addAsLibraries(requiredLibraries);
    }
    Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
    @Test
    public void testEmptyObject() throws JSONException {
        JsonReader jsonReader = Json.createReader(new StringReader("{}"));
        JsonObject json = jsonReader.readObject();
    
        assertNotNull(json);
        assertTrue(json.isEmpty());
    }
    Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
    @Test
    public void testSimpleObjectWithTwoElements() throws JSONException {
        JsonReader jsonReader = Json.createReader(new StringReader("{"
                + "  \"apple\":\"red\","
                + "  \"banana\":\"yellow\""
                + "}"));
        JsonObject json = jsonReader.readObject();
    
        assertNotNull(json);
        assertFalse(json.isEmpty());
        assertTrue(json.containsKey("apple"));
        assertEquals("red", json.getString("apple"));
        assertTrue(json.containsKey("banana"));
        assertEquals("yellow", json.getString("banana"));
    }
    Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
    @Test
    public void testArray() throws JSONException {
        JsonReader jsonReader = Json.createReader(new StringReader("["
                + "  { \"apple\":\"red\" },"
                + "  { \"banana\":\"yellow\" }"
                + "]"));
        JsonArray jsonArr = jsonReader.readArray();
        assertNotNull(jsonArr);
        assertEquals(2, jsonArr.size());
    
        JSONAssert.assertEquals("{\"apple\":\"red\"}", jsonArr.get(0).toString(), JSONCompareMode.STRICT);
        JSONAssert.assertEquals("{\"banana\":\"yellow\"}", jsonArr.get(1).toString(), JSONCompareMode.STRICT);
    }
    Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
    @Test
    public void testNestedStructure() throws JSONException {
        JsonReader jsonReader = Json.createReader(new StringReader("{"
                + "  \"title\":\"The Matrix\","
                + "  \"year\":1999,"
                + "  \"cast\":["
                + "    \"Keanu Reaves\","
                + "    \"Laurence Fishburne\","
                + "    \"Carrie-Anne Moss\""
                + "  ]"
                + "}"));
        JsonObject json = jsonReader.readObject();
    
        assertNotNull(json);
        assertFalse(json.isEmpty());
        assertTrue(json.containsKey("title"));
        assertEquals("The Matrix", json.getString("title"));
        assertTrue(json.containsKey("year"));
        assertEquals(1999, json.getInt("year"));
        assertTrue(json.containsKey("cast"));
        JsonArray jsonArr = json.getJsonArray("cast");
        assertNotNull(jsonArr);
        assertEquals(3, jsonArr.size());
    
        JSONAssert.assertEquals("["
                + "    \"Keanu Reaves\","
                + "    \"Laurence Fishburne\","
                + "    \"Carrie-Anne Moss\""
                + "  ]", jsonArr.toString(), JSONCompareMode.STRICT);
    }

    JsonReaderFromStreamTest

    Missing a description for the story. Add some javadoc to the TestClass. Show me how!
    Missing a description for the deployment. Add some javadoc to the @Deployment method. Show me how!
    @Deployment
    public static Archive<?> deploy() {
        File[] requiredLibraries = Maven.resolver().loadPomFromFile("pom.xml")
                .resolve("org.json:json", "org.skyscreamer:jsonassert")
                .withTransitivity().asFile();
    
        return ShrinkWrap.create(WebArchive.class)
                .addAsResource("1.json")
                .addAsResource("2.json")
                .addAsResource("3.json")
                .addAsResource("4.json")
                .addAsLibraries(requiredLibraries);
    }
    Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
    @Test
    public void testEmptyObject() throws JSONException {
        JsonReader jsonReader = Json.createReader(Thread
                .currentThread()
                .getContextClassLoader()
                .getResourceAsStream("/1.json"));
        JsonObject json = jsonReader.readObject();
    
        assertNotNull(json);
        assertTrue(json.isEmpty());
    }
    Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
    @Test
    public void testSimpleObjectWithTwoElements() throws JSONException {
        JsonReader jsonReader = Json.createReader(Thread
                .currentThread()
                .getContextClassLoader()
                .getResourceAsStream("/2.json"));
        JsonObject json = jsonReader.readObject();
    
        assertNotNull(json);
        assertFalse(json.isEmpty());
        assertTrue(json.containsKey("apple"));
        assertEquals("red", json.getString("apple"));
        assertTrue(json.containsKey("banana"));
        assertEquals("yellow", json.getString("banana"));
    }
    Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
    @Test
    public void testArray() throws JSONException {
        JsonReader jsonReader = Json.createReader(Thread
                .currentThread()
                .getContextClassLoader()
                .getResourceAsStream("/3.json"));
        JsonArray jsonArr = jsonReader.readArray();
        assertNotNull(jsonArr);
        assertEquals(2, jsonArr.size());
    
        JSONAssert.assertEquals("{\"apple\":\"red\"}", jsonArr.get(0).toString(), JSONCompareMode.STRICT);
        JSONAssert.assertEquals("{\"banana\":\"yellow\"}", jsonArr.get(1).toString(), JSONCompareMode.STRICT);
    }
    Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
    @Test
    public void testNestedStructure() throws JSONException {
        JsonReader jsonReader = Json.createReader(Thread
                .currentThread()
                .getContextClassLoader()
                .getResourceAsStream("/4.json"));
        JsonObject json = jsonReader.readObject();
    
        assertNotNull(json);
        assertFalse(json.isEmpty());
        assertTrue(json.containsKey("title"));
        assertEquals("The Matrix", json.getString("title"));
        assertTrue(json.containsKey("year"));
        assertEquals(1999, json.getInt("year"));
        assertTrue(json.containsKey("cast"));
        JsonArray jsonArr = json.getJsonArray("cast");
        assertNotNull(jsonArr);
        assertEquals(3, jsonArr.size());
    
        JSONAssert.assertEquals("["
                + "    \"Keanu Reaves\","
                + "    \"Laurence Fishburne\","
                + "    \"Carrie-Anne Moss\""
                + "  ]", jsonArr.toString(), JSONCompareMode.STRICT);
    }

    Share the Knowledge

    Find this sample useful? Share on

    There's a lot more about JavaEE to cover. If you're ready to learn more, check out the other available samples.

    Help Improve

    Find a bug in the sample? Something missing? You can fix it by editing the source, making the correction and sending a pull request. Or report the problem to the issue tracker

    Recent Changelog

    • Jul 15, 2014: Removed default header by Roberto Cortez
    • Nov 12, 2013: Converting to unit tests by Arun Gupta
    • Sep 17, 2013: Removing netbeans configuration file by Arun Gupta
    • Aug 28, 2013: Fixed title by Arun Gupta
    • Aug 28, 2013: Cleaned up output by Arun Gupta
    • Aug 27, 2013: Moving the source code from http://svn.java.net/svn/glassfish~svn/branches/arun/javaee7-samples/samples/ by Arun Gupta
    How to help improve this sample
    The source code for this sample can be found in the javaee7-samples GitHub repository. The first thing you need to do is to get the source by downloading the repository and then go into the samples folder:
    git clone git://github.com/javaee-samples/javaee7-samples.git
    cd javaee7-samples/json/object-reader/

    Do the changes as you see fit and send a pull request!

    Good Luck!