@Test
 public void testStr() {
   SimpleObj i = new SimpleObj();
   i.setName("PengtaoQiu\nAlvin\nhttp://fireflysource.com");
   String jsonStr = Json.toJson(i);
   System.out.println(jsonStr);
   SimpleObj i2 = Json.toObject(jsonStr, SimpleObj.class);
   Assert.assertThat(i2.getName(), is("PengtaoQiu\nAlvin\nhttp://fireflysource.com"));
 }
 @Test
 public void test3() {
   String jsonStr =
       "{\"id\":33442,\"date\":null,\"add1\":{}, \"add2\":{}, \"add3\":{}, \"add4\":{}, \"add5\":null,\"add6\":\"sdfsdf\",\"contact2\":{}, \"number\":30,\"height\":\" 33.24 \",\"name\":\"PengtaoQiu\nAlvin\",\"type\":null,\"weight\":40.3}";
   SimpleObj temp = Json.toObject(jsonStr, SimpleObj.class);
   Assert.assertThat(temp.getName(), is("PengtaoQiu\nAlvin"));
   Assert.assertThat(temp.getId(), is(33442));
   Assert.assertThat(temp.getWeight(), is(40.3F));
   Assert.assertThat(temp.getHeight(), is(33.24));
 }
  @Test
  public void testControlChar() {

    char ch = (char) 31, ch1 = (char) 1, ch2 = (char) 0, ch3 = (char) 15, ch4 = (char) 16;

    Assert.assertThat(JsonStringWriter.escapeSpecialCharacter(ch), is("\\u001f"));
    Assert.assertThat(JsonStringWriter.escapeSpecialCharacter(ch1), is("\\u0001"));
    Assert.assertThat(JsonStringWriter.escapeSpecialCharacter(ch2), is("\\u0000"));
    Assert.assertThat(JsonStringWriter.escapeSpecialCharacter(ch3), is("\\u000f"));
    Assert.assertThat(JsonStringWriter.escapeSpecialCharacter(ch4), is("\\u0010"));

    SimpleObj i = new SimpleObj();
    i.setName(
        "PengtaoQiu\nAlvin\nhttp://fireflysource.com"
            + String.valueOf(ch1)
            + String.valueOf(ch2)
            + String.valueOf(ch3)
            + String.valueOf(ch4)
            + String.valueOf(ch));
    String jsonStr = Json.toJson(i);
    System.out.println(jsonStr);
    SimpleObj i2 = Json.toObject(jsonStr, SimpleObj.class);
    Assert.assertThat((int) i2.getName().charAt(i2.getName().length() - 1), is(31));
    Assert.assertThat((int) i2.getName().charAt(i2.getName().length() - 2), is(16));
    Assert.assertThat((int) i2.getName().charAt(i2.getName().length() - 3), is(15));
    Assert.assertThat((int) i2.getName().charAt(i2.getName().length() - 4), is(0));
    Assert.assertThat((int) i2.getName().charAt(i2.getName().length() - 5), is(1));

    System.out.println(Json.toJson(i2));
  }
  @Test
  public void test() {
    SimpleObj i = new SimpleObj();
    i.setAge(10);
    i.setId(33442);
    i.setNumber(30);
    i.setName("PengtaoQiu\nAlvin");
    i.setType((short) -33);
    i.setWeight(55.47f);
    i.setHeight(170.5);
    String jsonStr = Json.toJson(i);

    SimpleObj i2 = Json.toObject(jsonStr, SimpleObj.class);
    Assert.assertThat(i2.getAge(), is(10));
    Assert.assertThat(i2.getId(), is(33442));
    Assert.assertThat(i2.getNumber(), is(30));
    Assert.assertThat(i2.getDate(), is(0L));
    Assert.assertThat(i2.getName(), is("PengtaoQiu\nAlvin"));
    Assert.assertThat(i2.getType(), is((short) -33));
    Assert.assertThat(i2.getHeight(), is(170.5));
    Assert.assertThat(i2.getWeight(), is(55.47f));
  }
  @Test
  public void test5() {
    List<LinkedList<SimpleObj>> list = new LinkedList<LinkedList<SimpleObj>>();

    LinkedList<SimpleObj> list1 = new LinkedList<SimpleObj>();
    for (int j = 0; j < 10; j++) {
      SimpleObj i = new SimpleObj();
      i.setAge(10);
      i.setId(33442 + j);
      i.setNumber(30);
      i.setName("PengtaoQiu\nAlvin");

      SimpleObj i2 = new SimpleObj();
      i2.setAge(20);
      i2.setId(12341);
      i2.setNumber(33);
      i2.setName("Tom");
      i.setContact1(i2);
      list1.add(i);
    }
    list.add(list1);

    list1 = new LinkedList<SimpleObj>();
    for (int j = 0; j < 10; j++) {
      SimpleObj i = new SimpleObj();
      i.setAge(10);
      i.setId(1000 + j);
      i.setNumber(30);
      i.setName("PengtaoQiu\nAlvin");

      SimpleObj i2 = new SimpleObj();
      i2.setAge(20);
      i2.setId(12341);
      i2.setNumber(33);
      i2.setName("Tom");
      i.setContact1(i2);
      list1.add(i);
    }
    list.add(list1);

    CollectionObj o = new CollectionObj();
    o.setList(list);
    String json = Json.toJson(o);

    CollectionObj o2 = Json.toObject(json, CollectionObj.class);
    Assert.assertThat(o2.getList().size(), is(2));
    Assert.assertThat(o2.getList().get(0).size(), is(10));
    Assert.assertThat(o2.getList().get(0).get(1).getId(), is(33443));
    Assert.assertThat(o2.getList().get(1).get(1).getId(), is(1001));
  }
  @Test
  public void test2() {
    SimpleObj i = new SimpleObj();
    i.setAge(10);
    i.setId(33442);
    i.setNumber(30);
    i.setName("PengtaoQiu\nAlvin");

    SimpleObj i2 = new SimpleObj();
    i2.setAge(20);
    i2.setId(12341);
    i2.setNumber(33);
    i2.setName("Tom");
    i.setContact1(i2);
    String jsonStr = Json.toJson(i);

    SimpleObj temp = Json.toObject(jsonStr, SimpleObj.class);
    Assert.assertThat(temp.getId(), is(33442));
    Assert.assertThat(temp.getContact1().getId(), is(12341));
    Assert.assertThat(temp.getContact1().getName(), is("Tom"));
    Assert.assertThat(temp.getContact1().getAge(), is(20));
    Assert.assertThat(temp.getContact2(), nullValue());
  }