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 }