package test.utils.json.parser;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import test.utils.json.ArrayObj;
import test.utils.json.Bar;
import test.utils.json.Book;
import test.utils.json.BookDemo.TestBook;
import test.utils.json.BookDemo.TestBook2;
import test.utils.json.CollectionObj;
import test.utils.json.DateFormatObject;
import test.utils.json.DateObj;
import test.utils.json.MapObj;
import test.utils.json.Profile;
import test.utils.json.SimpleObj;
import test.utils.json.SimpleObj2;
import test.utils.json.SpecialPropertyObject;
import test.utils.json.User;
import test.utils.json.github.MediaContent;
import test.utils.json.github.Player;
import test.utils.json.github.Size;
import com.firefly.utils.json.Json;
import com.firefly.utils.json.JsonArray;
import com.firefly.utils.json.JsonObject;
import com.firefly.utils.json.io.JsonStringWriter;
import com.firefly.utils.time.SafeSimpleDateFormat;
public class TestParser {
@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 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 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());
}
@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 test4() {
SimpleObj2 so2 = new SimpleObj2();
so2.setId(334);
User user = new User();
user.setId(2434L);
user.setName("Pengtao");
so2.setUser(user);
Book book = new Book();
book.setId(23424);
book.setPrice(3.4);
book.setSell(true);
book.setText("cccccccc");
book.setTitle("ddddd");
so2.setBook(book);
String jsonStr = Json.toJson(so2);
SimpleObj2 temp = Json.toObject(jsonStr, SimpleObj2.class);
Assert.assertThat(temp.getBook().getPrice(), is(3.4));
Assert.assertThat(temp.getBook().getTitle(), nullValue());
Assert.assertThat(temp.getId(), is(334));
}
@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 test6() {
MediaContent record = MediaContent.createRecord();
String json = Json.toJson(record);
MediaContent r = Json.toObject(json, MediaContent.class);
Assert.assertThat(r.getMedia().getPlayer(), is(Player.JAVA));
Assert.assertThat(r.getImages().size(), is(2));
Assert.assertThat(r.getImages().get(0).getSize(), is(Size.LARGE));
Assert.assertThat(r.getImages().get(0).getHeight(), is(768));
}
@Test
public void test7() {
ArrayObj obj = new ArrayObj();
Integer[] i = new Integer[] { 2, 3, 4, 5, 6, 332 };
obj.setNumbers(i);
long[][] map = new long[][] { { 3L, 44L, 55L }, { 24, 324, 3 } };
obj.setMap(map);
List<User> users = new ArrayList<User>();
for (int j = 0; j < 3; j++) {
User user = new User();
user.setId((long) j);
user.setName("user" + j);
users.add(user);
}
obj.setUsers(users.toArray(new User[0]));
String json = Json.toJson(obj);
ArrayObj obj2 = Json.toObject(json, ArrayObj.class);
Assert.assertThat(obj2.getNumbers()[3], is(5));
Assert.assertThat(obj2.getNumbers().length, is(6));
Assert.assertThat(obj2.getMap().length, is(2));
Assert.assertThat(obj2.getMap()[0][1], is(44L));
Assert.assertThat(obj2.getUsers().length, is(3));
Assert.assertThat(obj2.getUsers()[0].getId(), is(0L));
Assert.assertThat(obj2.getUsers()[1].getName(), is("user1"));
}
@Test
public void test8() {
List<User> users = new ArrayList<User>();
for (int j = 0; j < 3; j++) {
User user = new User();
user.setId((long) j);
user.setName("user" + j);
users.add(user);
}
User[] u = users.toArray(new User[0]);
String json = Json.toJson(u);
User[] u2 = Json.toObject(json, User[].class);
Assert.assertThat(u2.length, is(3));
Assert.assertThat(u2[0].getId(), is(0L));
Assert.assertThat(u2[1].getName(), is("user1"));
}
@Test
public void test9() {
MapObj m = new MapObj();
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a1", 40);
m.setMap(map);
Map<String, User[]> userMap = new HashMap<String, User[]>();
List<User> users = new ArrayList<User>();
for (int j = 0; j < 3; j++) {
User user = new User();
user.setId((long) j);
user.setName("user" + j);
users.add(user);
}
User[] u = users.toArray(new User[0]);
userMap.put("user1", u);
users = new ArrayList<User>();
for (int j = 10; j < 12; j++) {
User user = new User();
user.setId((long) j);
user.setName("user_b" + j);
users.add(user);
}
u = users.toArray(new User[0]);
userMap.put("user2", u);
m.setUserMap(userMap);
Map<String, int[]> map3 = new HashMap<String, int[]>();
map3.put("m31", new int[] { 3, 4, 5, 6 });
map3.put("m32", new int[] { 7, 8, 9 });
m.map3 = map3;
String json = Json.toJson(m);
MapObj m2 = Json.toObject(json, MapObj.class);
Assert.assertThat(m2.getMap().get("a1"), is(40));
Assert.assertThat(m.getUserMap().get("user1").length, is(3));
Assert.assertThat(m.getUserMap().get("user2").length, is(2));
Assert.assertThat(m.getUserMap().get("user2")[0].getName(), is("user_b10"));
Assert.assertThat(m2.map3.get("m31")[3], is(6));
}
@Test
public void test10() throws Throwable {
DateObj obj = new DateObj();
obj.setDate(new Date());
StringBuilder strBuilder = new StringBuilder(100);
for (int i = 0; i < 100; i++) {
strBuilder.append(i).append("+");
}
obj.setByteArr(strBuilder.toString().getBytes("utf-8"));
String json = Json.toJson(obj);
DateObj obj2 = Json.toObject(json, DateObj.class);
System.out.println(SafeSimpleDateFormat.defaultDateFormat.format(obj2.getDate()));
Assert.assertThat(new String(obj2.getByteArr(), "utf-8"), is(
"0+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+"));
}
@Test
public void test11() {
SimpleObj2 obj = new SimpleObj2();
obj.setSex('c');
obj.setSymbol("测试一下".toCharArray());
String json = Json.toJson(obj);
SimpleObj2 obj2 = Json.toObject(json, SimpleObj2.class);
Assert.assertThat(obj2.getSex(), is('c'));
Assert.assertThat(new String(obj2.getSymbol()), is("测试一下"));
}
@Test
public void test12() {
String json = "{\"totalreadtime\":5,\"notecount\":27,\"timeintervalreadtime\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,0,0,0,0,0,0,0],\"bookcollect\":0,\"screenshotshare\":0,\"readbooktype\":{\"测试\":1,\"测试一下\":23},\"bookshare\":0,\"readbookcount\":0,\"noteshare\":0}";
Profile p = Json.toObject(json, Profile.class);
Assert.assertThat(p.getTotalreadtime(), is(5));
Assert.assertThat(p.getNotecount(), is(27));
Assert.assertThat(p.getTimeintervalreadtime().length, is(24));
Assert.assertThat(p.getTimeintervalreadtime()[16], is(4));
Assert.assertThat(p.getReadbooktype().get("测试一下"), is(23));
}
@Test
public void testBigNumber() {
SimpleObj2 s = new SimpleObj2();
s.setBigDecimal(new BigDecimal("-3.34"));
s.setBigInteger(new BigInteger("-4"));
String json = Json.toJson(s);
System.out.println(json);
SimpleObj2 s2 = Json.toObject(json, SimpleObj2.class);
Assert.assertThat(s2.getBigDecimal(), is(new BigDecimal("-3.34")));
Assert.assertThat(s2.getBigInteger(), is(new BigInteger("-4")));
}
@Test
public void testEmptyArray() {
Assert.assertTrue(Json.toObject("[]", Bar[].class) instanceof Bar[]);
}
@Test
public void testGeneralJsonObject() {
String json = "{\"key1\":333, \"key2\" : {\"key3\" : \"hello\", \"key4\":\"world\" }, \"booleanKey\" : true } ";
JsonObject jsonObject = Json.toJsonObject(json);
Assert.assertThat(jsonObject.getInteger("key1"), is(333));
Assert.assertThat(jsonObject.getJsonObject("key2").getString("key3"), is("hello"));
Assert.assertThat(jsonObject.getJsonObject("key2").getString("key4"), is("world"));
Assert.assertThat(jsonObject.getBoolean("booleanKey"), is(true));
}
@Test
public void testGeneralJsonArray() {
String json = "[333,444,{\"key\" : \"hello\"},666]";
JsonArray array = Json.toJsonArray(json);
Assert.assertThat(array.getInteger(0), is(333));
Assert.assertThat(array.getInteger(1), is(444));
Assert.assertThat(array.getJsonObject(2).getString("key"), is("hello"));
Assert.assertThat(array.getInteger(3), is(666));
}
@Test
public void testMixedGeneralJsonArrayAndJsonObject() {
String json = "[333,444,{\"key\" : \"hello\", \"keyObject\" : [\"object0\",\"object1\" ]},666]";
JsonArray array = Json.toJsonArray(json);
Assert.assertThat(array.getJsonObject(2).getJsonArray("keyObject").getString(0), is("object0"));
Assert.assertThat(array.getJsonObject(2).getJsonArray("keyObject").getString(1), is("object1"));
json = "{\"key1\":333, \"arrayKey\":[444, \"array\"], \"key2\" : {\"key3\" : \"hello\", \"key4\":\"world\" }, \"booleanKey\" : true } ";
JsonObject jsonObject = Json.toJsonObject(json);
Assert.assertThat(jsonObject.getJsonArray("arrayKey").getString(1), is("array"));
Assert.assertThat(jsonObject.getJsonObject("key2").getString("key4"), is("world"));
}
@Test
public void testDateFormat() {
Calendar cal = Calendar.getInstance();
cal.set(2015, Calendar.JANUARY, 25, 14, 53, 12);
DateFormatObject obj = new DateFormatObject();
System.out.println(obj);
obj.init(cal);
String json = Json.toJson(obj);
System.out.println(json);
DateFormatObject obj2 = Json.toObject(json, DateFormatObject.class);
System.out.println(obj2);
Assert.assertThat(obj2.title, is(obj.title));
Calendar calDateDefault = Calendar.getInstance();
calDateDefault.setTime(obj2.getDateDefault());
Assert.assertThat(calDateDefault.get(Calendar.YEAR), is(cal.get(Calendar.YEAR)));
Assert.assertThat(calDateDefault.get(Calendar.MONTH), is(cal.get(Calendar.MONTH)));
Assert.assertThat(calDateDefault.get(Calendar.DAY_OF_MONTH), is(cal.get(Calendar.DAY_OF_MONTH)));
Assert.assertThat(calDateDefault.get(Calendar.HOUR_OF_DAY), is(cal.get(Calendar.HOUR_OF_DAY)));
Assert.assertThat(calDateDefault.get(Calendar.MINUTE), is(cal.get(Calendar.MINUTE)));
Assert.assertThat(calDateDefault.get(Calendar.SECOND), is(cal.get(Calendar.SECOND)));
Calendar dateFieldDefaultFormat = Calendar.getInstance();
dateFieldDefaultFormat.setTime(obj2.getDateFieldDefaultFormat());
Assert.assertThat(dateFieldDefaultFormat.get(Calendar.YEAR), is(cal.get(Calendar.YEAR)));
Assert.assertThat(dateFieldDefaultFormat.get(Calendar.MONTH), is(cal.get(Calendar.MONTH)));
Assert.assertThat(dateFieldDefaultFormat.get(Calendar.DAY_OF_MONTH), is(cal.get(Calendar.DAY_OF_MONTH)));
Assert.assertThat(dateFieldDefaultFormat.get(Calendar.HOUR_OF_DAY), is(cal.get(Calendar.HOUR_OF_DAY)));
Assert.assertThat(dateFieldDefaultFormat.get(Calendar.MINUTE), is(cal.get(Calendar.MINUTE)));
Assert.assertThat(dateFieldDefaultFormat.get(Calendar.SECOND), is(cal.get(Calendar.SECOND)));
Calendar dateFieldTimestamp = Calendar.getInstance();
dateFieldTimestamp.setTime(obj2.getDateFieldTimestamp());
Assert.assertThat(dateFieldTimestamp.get(Calendar.YEAR), is(cal.get(Calendar.YEAR)));
Assert.assertThat(dateFieldTimestamp.get(Calendar.MONTH), is(cal.get(Calendar.MONTH)));
Assert.assertThat(dateFieldTimestamp.get(Calendar.DAY_OF_MONTH), is(cal.get(Calendar.DAY_OF_MONTH)));
Assert.assertThat(dateFieldTimestamp.get(Calendar.HOUR_OF_DAY), is(cal.get(Calendar.HOUR_OF_DAY)));
Assert.assertThat(dateFieldTimestamp.get(Calendar.MINUTE), is(cal.get(Calendar.MINUTE)));
Assert.assertThat(dateFieldTimestamp.get(Calendar.SECOND), is(cal.get(Calendar.SECOND)));
Calendar dateFieldFormat1 = Calendar.getInstance();
dateFieldFormat1.setTime(obj2.dateFieldFormat1);
Assert.assertThat(dateFieldFormat1.get(Calendar.YEAR), is(cal.get(Calendar.YEAR)));
Assert.assertThat(dateFieldFormat1.get(Calendar.MONTH), is(cal.get(Calendar.MONTH)));
Assert.assertThat(dateFieldFormat1.get(Calendar.DAY_OF_MONTH), is(cal.get(Calendar.DAY_OF_MONTH)));
Assert.assertThat(dateFieldFormat1.get(Calendar.HOUR_OF_DAY), is(cal.get(Calendar.HOUR_OF_DAY)));
Assert.assertThat(dateFieldFormat1.get(Calendar.MINUTE), is(cal.get(Calendar.MINUTE)));
Assert.assertThat(dateFieldFormat1.get(Calendar.SECOND), is(cal.get(Calendar.SECOND)));
Calendar cal2 = Calendar.getInstance();
cal2.setTime(obj2.getDateMethodFormat());
Assert.assertThat(cal2.get(Calendar.YEAR), is(cal.get(Calendar.YEAR)));
Assert.assertThat(cal2.get(Calendar.MONTH), is(cal.get(Calendar.MONTH)));
Assert.assertThat(cal2.get(Calendar.DAY_OF_MONTH), is(cal.get(Calendar.DAY_OF_MONTH)));
Assert.assertThat(cal2.get(Calendar.HOUR_OF_DAY), is(0));
Assert.assertThat(cal2.get(Calendar.MINUTE), is(0));
Assert.assertThat(cal2.get(Calendar.SECOND), is(0));
}
@Test
public void testSpecialPropertyObject() {
SpecialPropertyObject s = new SpecialPropertyObject();
System.out.println(s);
s.init();
String json = Json.toJson(s);
System.out.println(json);
SpecialPropertyObject s2 = Json.toObject(json, SpecialPropertyObject.class);
System.out.println(s2);
Assert.assertThat(s2.getiOS(), is(s.getiOS()));
Assert.assertThat(s2.getiPad(), is(s.getiPad()));
Assert.assertThat(s2.getiPhone(), is(s.getiPhone()));
Assert.assertThat(s2.isiText(), is(s.isiText()));
Assert.assertThat(s2.aOS, is(s.aOS));
Assert.assertThat(s2.aPad, is(s.aPad));
Assert.assertThat(s2.aPhone, is(s.aPhone));
Assert.assertThat(s2.aText, is(s.aText));
}
@Test
public void testRuntimeSerialization() {
Book book = new Book();
book.setPrice(10.0);
book.setId(331);
book.setText("very good");
book.setSell(true);
book.setTitle("gook book");
System.out.println(Json.toJson(book));
TestBook t = new TestBook();
t.setObj(new Object());
t.setBook(book);
String t0 = Json.toJson(t);
JsonObject o = Json.toJsonObject(t0);
Assert.assertThat(o.getJsonObject("book").getInteger("id"), is(331));
Assert.assertThat(o.getJsonObject("obj"), nullValue());
t = new TestBook();
t.setObj(book);
t.setBook(book);
String t1 = Json.toJson(t);
o = Json.toJsonObject(t1);
Assert.assertThat(o.getJsonObject("book").getInteger("id"), is(331));
Assert.assertThat(o.getJsonObject("obj").getInteger("id"), is(331));
t.setObj(new Object());
String t2 = Json.toJson(t);
o = Json.toJsonObject(t2);
Assert.assertThat(o.getJsonObject("book").getInteger("id"), is(331));
Assert.assertThat(o.getJsonObject("obj"), nullValue());
t.setObj(book);
String t3 = Json.toJson(t);
o = Json.toJsonObject(t3);
Assert.assertThat(o.getJsonObject("book").getInteger("id"), is(331));
Assert.assertThat(o.getJsonObject("obj").getInteger("id"), is(331));
TestBook2<Book> tb2 = new TestBook2<Book>();
tb2.setObj(book);
tb2.setBook(null);
String t4 = Json.toJson(tb2);
o = Json.toJsonObject(t4);
Assert.assertThat(o.getJsonObject("book"), nullValue());
Assert.assertThat(o.getJsonObject("obj").getInteger("id"), is(331));
tb2.setObj(book);
String t5 = Json.toJson(tb2);
o = Json.toJsonObject(t5);
Assert.assertThat(o.getJsonObject("book"), nullValue());
Assert.assertThat(o.getJsonObject("obj").getInteger("id"), is(331));
TestBook2<Object> tb3 = new TestBook2<Object>();
tb3.setObj(book);
tb3.setBook(book);
String t6 = Json.toJson(tb3);
o = Json.toJsonObject(t6);
Assert.assertThat(o.getJsonObject("book").getInteger("id"), is(331));
Assert.assertThat(o.getJsonObject("obj").getInteger("id"), is(331));
}
@Test
public void testDate() {
String json = "{ \"date1\" : \"2016-02-04 14:38:18\", \"date2\": null }";
TestDate d = Json.toObject(json, TestDate.class);
System.out.println(Json.toJson(d));
Assert.assertThat(d.getDate1(), is(SafeSimpleDateFormat.defaultDateFormat.parse("2016-02-04 14:38:18")));
Assert.assertThat(d.getDate2(), nullValue());
long c = System.currentTimeMillis();
json = "{ \"date1\" : \"2016-02-04 14:38:18\", \"date2\": " + c + "}";
d = Json.toObject(json, TestDate.class);
Assert.assertThat(d.getDate2(), is(new Date(c)));
}
public static class TestDate {
private Date date1;
private Date date2;
public Date getDate1() {
return date1;
}
public void setDate1(Date date1) {
this.date1 = date1;
}
public Date getDate2() {
return date2;
}
public void setDate2(Date date2) {
this.date2 = date2;
}
}
public static void main3(String[] args) {
String json = "{ \"key1\":333, \"arrayKey\":[444, \"array\"], \"key2\" : {\"key3\" : \"hello\", \"key4\":\"world\" }, \"booleanKey\" : true } ";
JsonObject jsonObject = Json.toJsonObject(json);
System.out.println(jsonObject.getJsonArray("arrayKey"));
System.out.println(jsonObject.getJsonObject("key2").getString("key4"));
}
public static void main4(String[] args) {
Date date = new Date();
System.out.println(date.getClass() == Date.class);
System.out.println(Date.class.isAssignableFrom(java.sql.Date.class));
System.out.println(date.getClass() == new Date().getClass());
}
public static void main5(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(2015, Calendar.JANUARY, 25, 14, 53, 12);
System.out.println(cal.get(Calendar.HOUR_OF_DAY));
DateFormatObject obj = new DateFormatObject();
System.out.println(obj);
obj.init(cal);
String json = Json.toJson(obj);
System.out.println(json);
DateFormatObject obj2 = Json.toObject(json, DateFormatObject.class);
System.out.println(obj2);
}
public static void main6(String[] args) {
SpecialPropertyObject s = new SpecialPropertyObject();
System.out.println(s);
s.init();
String json = Json.toJson(s);
System.out.println(json);
SpecialPropertyObject s2 = Json.toObject(json, SpecialPropertyObject.class);
System.out.println(s2);
}
public static void main(String[] args) {
new TestParser().test2();
}
public static void main2(String[] args) {
// new TestParser().testBigNumber();
// Bar[] arr = Json.toObject("[]", Bar[].class);
// System.out.println(arr);
// char ch = (char)31,
// ch1 = (char)1,
// ch2 = (char)0,
// ch3 = (char)15,
// ch4 = (char)16;
// System.out.println(JsonStringWriter.escapeSpecialCharacter(ch3));
}
}