Example #1
0
  @Test
  public void testEnumConvertor() {
    JSON json = new JSON();
    Locale l = new Locale("en", "US");
    json.addConvertor(
        Date.class,
        new JSONDateConvertor(DateCache.DEFAULT_FORMAT, TimeZone.getTimeZone("GMT"), false, l));
    json.addConvertor(Enum.class, new JSONEnumConvertor(false));
    json.addConvertor(Object.class, new JSONObjectConvertor());

    Woggle w0 = new Woggle();
    Gizmo g0 = new Gizmo();

    w0.name = "woggle0";
    w0.nested = g0;
    w0.number = 100;
    w0.other = Color.Blue;
    g0.name = "woggle1";
    g0.nested = null;
    g0.number = -101;
    g0.tested = true;
    g0.other = Color.Green;

    HashMap map = new HashMap();
    map.put("date", new Date(1));
    map.put("w0", w0);
    map.put("g0", g0);

    StringBuffer buf = new StringBuffer();
    json.append((Appendable) buf, map);
    String js = buf.toString();

    assertTrue(js.indexOf("\"date\":\"Thu Jan 01 00:00:00 GMT 1970\"") >= 0);
    assertTrue(js.indexOf("org.eclipse.jetty.util.ajax.JSONTest$Woggle") >= 0);
    assertTrue(js.indexOf("org.eclipse.jetty.util.ajax.JSONTest$Gizmo") < 0);
    assertTrue(js.indexOf("\"tested\":true") >= 0);
    assertTrue(js.indexOf("\"Green\"") >= 0);
    assertTrue(js.indexOf("\"Blue\"") < 0);

    json.addConvertor(
        Date.class,
        new JSONDateConvertor(DateCache.DEFAULT_FORMAT, TimeZone.getTimeZone("GMT"), true, l));
    json.addConvertor(Enum.class, new JSONEnumConvertor(false));
    w0.nested = null;
    buf = new StringBuffer();
    json.append((Appendable) buf, map);
    js = buf.toString();
    assertTrue(js.indexOf("\"date\":\"Thu Jan 01 00:00:00 GMT 1970\"") < 0);
    assertTrue(js.indexOf("org.eclipse.jetty.util.ajax.JSONTest$Woggle") >= 0);
    assertTrue(js.indexOf("org.eclipse.jetty.util.ajax.JSONTest$Gizmo") < 0);

    Map map2 = (HashMap) json.parse(new JSON.StringSource(js));

    assertTrue(map2.get("date") instanceof Date);
    assertTrue(map2.get("w0") instanceof Woggle);
    assertEquals(null, ((Woggle) map2.get("w0")).getOther());
    assertEquals(Color.Green.toString(), ((Map) map2.get("g0")).get("other"));

    json.addConvertor(
        Date.class,
        new JSONDateConvertor(DateCache.DEFAULT_FORMAT, TimeZone.getTimeZone("GMT"), true, l));
    json.addConvertor(Enum.class, new JSONEnumConvertor(true));
    buf = new StringBuffer();
    json.append((Appendable) buf, map);
    js = buf.toString();
    map2 = (HashMap) json.parse(new JSON.StringSource(js));

    assertTrue(map2.get("date") instanceof Date);
    assertTrue(map2.get("w0") instanceof Woggle);
    assertEquals(null, ((Woggle) map2.get("w0")).getOther());
    Object o = ((Map) map2.get("g0")).get("other");
    assertEquals(Color.Green, o);
  }
Example #2
0
  @Test
  public void testToString() {
    HashMap map = new HashMap();
    HashMap obj6 = new HashMap();
    HashMap obj7 = new HashMap();

    Woggle w0 = new Woggle();
    Woggle w1 = new Woggle();

    w0.name = "woggle0";
    w0.nested = w1;
    w0.number = 100;
    w1.name = "woggle1";
    w1.nested = null;
    w1.number = -101;

    map.put("n1", null);
    map.put("n2", new Integer(2));
    map.put("n3", new Double(-0.00000000003));
    map.put("n4", "4\n\r\t\"4");
    map.put(
        "n5",
        new Object[] {
          "a",
          new Character('b'),
          new Integer(3),
          new String[] {},
          null,
          Boolean.TRUE,
          Boolean.FALSE
        });
    map.put("n6", obj6);
    map.put("n7", obj7);
    map.put("n8", new int[] {1, 2, 3, 4});
    map.put("n9", new JSON.Literal("[{},  [],  {}]"));
    map.put("w0", w0);

    obj7.put("x", "value");

    String s = JSON.toString(map);
    assertTrue(s.indexOf("\"n1\":null") >= 0);
    assertTrue(s.indexOf("\"n2\":2") >= 0);
    assertTrue(s.indexOf("\"n3\":-3.0E-11") >= 0);
    assertTrue(s.indexOf("\"n4\":\"4\\n") >= 0);
    assertTrue(s.indexOf("\"n5\":[\"a\",\"b\",") >= 0);
    assertTrue(s.indexOf("\"n6\":{}") >= 0);
    assertTrue(s.indexOf("\"n7\":{\"x\":\"value\"}") >= 0);
    assertTrue(s.indexOf("\"n8\":[1,2,3,4]") >= 0);
    assertTrue(s.indexOf("\"n9\":[{},  [],  {}]") >= 0);
    assertTrue(
        s.indexOf(
                "\"w0\":{\"class\":\"org.eclipse.jetty.util.ajax.JSONTest$Woggle\",\"name\":\"woggle0\",\"nested\":{\"class\":\"org.eclipse.jetty.util.ajax.JSONTest$Woggle\",\"name\":\"woggle1\",\"nested\":null,\"number\":-101},\"number\":100}")
            >= 0);

    Gadget gadget = new Gadget();
    gadget.setShields(42);
    gadget.setWoggles(new Woggle[] {w0, w1});

    s = JSON.toString(new Gadget[] {gadget});
    assertTrue(s.startsWith("["));
    assertTrue(s.indexOf("\"modulated\":false") >= 0);
    assertTrue(s.indexOf("\"shields\":42") >= 0);
    assertTrue(s.indexOf("\"name\":\"woggle0\"") >= 0);
    assertTrue(s.indexOf("\"name\":\"woggle1\"") >= 0);
  }
Example #3
0
  /* ------------------------------------------------------------ */
  @Test
  public void testConvertor() {
    // test case#1 - force timezone to GMT
    JSON json = new JSON();
    json.addConvertor(
        Date.class,
        new JSONDateConvertor("MM/dd/yyyy HH:mm:ss zzz", TimeZone.getTimeZone("GMT"), false));
    json.addConvertor(Object.class, new JSONObjectConvertor());

    Woggle w0 = new Woggle();
    Gizmo g0 = new Gizmo();

    w0.name = "woggle0";
    w0.nested = g0;
    w0.number = 100;
    g0.name = "woggle1";
    g0.nested = null;
    g0.number = -101;
    g0.tested = true;

    HashMap map = new HashMap();
    Date dummyDate = new Date(1);
    map.put("date", dummyDate);
    map.put("w0", w0);

    StringBuffer buf = new StringBuffer();
    json.append(buf, map);
    String js = buf.toString();

    assertTrue(js.indexOf("\"date\":\"01/01/1970 00:00:00 GMT\"") >= 0);
    assertTrue(js.indexOf("org.eclipse.jetty.util.ajax.JSONTest$Woggle") >= 0);
    assertTrue(js.indexOf("org.eclipse.jetty.util.ajax.JSONTest$Gizmo") < 0);
    assertTrue(js.indexOf("\"tested\":true") >= 0);

    // test case#3
    TimeZone tzone = TimeZone.getTimeZone("JST");
    String tzone3Letter = tzone.getDisplayName(false, TimeZone.SHORT);
    String format = "EEE MMMMM dd HH:mm:ss zzz yyyy";

    Locale l = new Locale("ja", "JP");
    if (l != null) {
      json.addConvertor(Date.class, new JSONDateConvertor(format, tzone, false, l));
      buf = new StringBuffer();
      json.append(buf, map);
      js = buf.toString();
      // assertTrue(js.indexOf("\"date\":\"\u6728 1\u6708 01 09:00:00 JST 1970\"")>=0);
      assertTrue(js.indexOf(" 01 09:00:00 JST 1970\"") >= 0);
      assertTrue(js.indexOf("org.eclipse.jetty.util.ajax.JSONTest$Woggle") >= 0);
      assertTrue(js.indexOf("org.eclipse.jetty.util.ajax.JSONTest$Gizmo") < 0);
      assertTrue(js.indexOf("\"tested\":true") >= 0);
    }

    // test case#4
    json.addConvertor(Date.class, new JSONDateConvertor(true));
    w0.nested = null;
    buf = new StringBuffer();
    json.append(buf, map);
    js = buf.toString();
    assertTrue(js.indexOf("\"date\":\"Thu Jan 01 00:00:00 GMT 1970\"") < 0);
    assertTrue(js.indexOf("org.eclipse.jetty.util.ajax.JSONTest$Woggle") >= 0);
    assertTrue(js.indexOf("org.eclipse.jetty.util.ajax.JSONTest$Gizmo") < 0);

    map = (HashMap) json.parse(new JSON.StringSource(js));

    assertTrue(map.get("date") instanceof Date);
    assertTrue(map.get("w0") instanceof Woggle);
  }