Handle null elements in arrays JsonArray
authorJaroslav Tulach <jtulach@netbeans.org>
Thu, 24 Jul 2014 16:18:37 +0200
branchJsonArray
changeset 750166bc67759d0
parent 749 18514ccc3ed1
child 753 a1f19913be01
Handle null elements in arrays
json-tck/src/main/java/net/java/html/json/tests/ConvertTypesTest.java
ko-ws-tyrus/src/main/java/org/netbeans/html/wstyrus/LoadJSON.java
     1.1 --- a/json-tck/src/main/java/net/java/html/json/tests/ConvertTypesTest.java	Thu Jul 24 16:11:59 2014 +0200
     1.2 +++ b/json-tck/src/main/java/net/java/html/json/tests/ConvertTypesTest.java	Thu Jul 24 16:18:37 2014 +0200
     1.3 @@ -169,6 +169,26 @@
     1.4          assert null == p.getLastName() : "Last name: " + p.getLastName();
     1.5      }
     1.6  
     1.7 +    @KOTest 
     1.8 +    public void parseNullArrayValue() throws Exception {
     1.9 +        final BrwsrCtx c = newContext();
    1.10 +        
    1.11 +        StringBuilder sb = new StringBuilder();
    1.12 +        sb.append("[ null, { \"firstName\" : \"son\",\n");
    1.13 +        sb.append("  \"lastName\" : null } ]\n");  
    1.14 +        
    1.15 +        final ByteArrayInputStream is = new ByteArrayInputStream(sb.toString().getBytes("UTF-8"));
    1.16 +        List<Person> arr = new ArrayList<Person>();
    1.17 +        Models.parse(c, Person.class, is, arr);
    1.18 +        
    1.19 +        assert arr.size() == 2 : "There are two items in " + arr;
    1.20 +        assert arr.get(0) == null : "first is null " + arr;
    1.21 +        
    1.22 +        Person p = arr.get(1);
    1.23 +        assert "son".equals(p.getFirstName()) : "First name: " + p.getFirstName();
    1.24 +        assert null == p.getLastName() : "Last name: " + p.getLastName();
    1.25 +    }
    1.26 +
    1.27      @KOTest
    1.28      public void testConvertToPeopleWithoutSex() throws Exception {
    1.29          final Object o = createJSON(false);
     2.1 --- a/ko-ws-tyrus/src/main/java/org/netbeans/html/wstyrus/LoadJSON.java	Thu Jul 24 16:11:59 2014 +0200
     2.2 +++ b/ko-ws-tyrus/src/main/java/org/netbeans/html/wstyrus/LoadJSON.java	Thu Jul 24 16:18:37 2014 +0200
     2.3 @@ -218,6 +218,8 @@
     2.4                  obj.put(key, convertToArray(obj.get(key)));
     2.5              }
     2.6              return obj;
     2.7 +        } else if (o == JSONObject.NULL) {
     2.8 +            return null;
     2.9          } else {
    2.10              return o;
    2.11          }