Ensuring different primitive types lead to valid JSON format
authorJaroslav Tulach <jtulach@netbeans.org>
Tue, 10 Mar 2015 15:22:39 +0100
changeset 93141076da07b68
parent 930 bf81793e4239
child 932 f2de2ae88589
Ensuring different primitive types lead to valid JSON format
json/src/main/java/org/netbeans/html/json/impl/JSON.java
json/src/test/java/net/java/html/json/TypesTest.java
     1.1 --- a/json/src/main/java/org/netbeans/html/json/impl/JSON.java	Tue Mar 10 15:14:30 2015 +0100
     1.2 +++ b/json/src/main/java/org/netbeans/html/json/impl/JSON.java	Tue Mar 10 15:22:39 2015 +0100
     1.3 @@ -102,6 +102,9 @@
     1.4          if (value instanceof Enum) {
     1.5              value = value.toString();
     1.6          }
     1.7 +        if (value instanceof Character) {
     1.8 +            value = Character.toString((Character)value);
     1.9 +        }
    1.10          if (value instanceof String) {
    1.11              String s = (String)value;
    1.12              int len = s.length();
     2.1 --- a/json/src/test/java/net/java/html/json/TypesTest.java	Tue Mar 10 15:14:30 2015 +0100
     2.2 +++ b/json/src/test/java/net/java/html/json/TypesTest.java	Tue Mar 10 15:22:39 2015 +0100
     2.3 @@ -44,6 +44,11 @@
     2.4  
     2.5  import net.java.html.BrwsrCtx;
     2.6  import java.util.Map;
     2.7 +import java.util.logging.Level;
     2.8 +import java.util.logging.Logger;
     2.9 +import javax.script.ScriptEngine;
    2.10 +import javax.script.ScriptEngineManager;
    2.11 +import javax.script.ScriptException;
    2.12  import net.java.html.json.MapModelTest.One;
    2.13  import org.netbeans.html.context.spi.Contexts;
    2.14  import org.netbeans.html.json.spi.Technology;
    2.15 @@ -108,6 +113,8 @@
    2.16          t.setFloatX(99f);
    2.17          t.setBoolX(true);
    2.18          
    2.19 +        assertValidJSON(t.toString());
    2.20 +        
    2.21          Object json = Models.toRaw(t);
    2.22          
    2.23          Types copy = Models.bind(new Types(), c);
    2.24 @@ -125,4 +132,14 @@
    2.25          assertTrue(copy.isBoolX());
    2.26          assertEquals(copy.getCharX(), 'A');
    2.27      }
    2.28 +    
    2.29 +    private static void assertValidJSON(String text) {
    2.30 +        ScriptEngineManager sem = new ScriptEngineManager();
    2.31 +        ScriptEngine eng = sem.getEngineByMimeType("text/javascript");
    2.32 +        try {
    2.33 +            eng.eval("var obj = " + text + ";");
    2.34 +        } catch (ScriptException ex) {
    2.35 +            fail("Cannot parse " + text, ex);
    2.36 +        }
    2.37 +    }
    2.38  }