package org.voovan.test.tools.json; import junit.framework.TestCase; import org.voovan.tools.TObject; import org.voovan.tools.json.JSONDecode; import java.util.List; import java.util.Map; public class JSONDecodeUnit extends TestCase { public JSONDecodeUnit(String name) { super(name); } @SuppressWarnings("rawtypes") public void testRun() throws Exception{ String jsonString = "/*asdfasdf*/"+ " {"+ "\"bint\":32,"+ "\"string\":\"helyho\","+ "\"tb2\":{"+ "\"bint\":56,"+ "\"string\":\"bi\\\"ngo\","+ "\"list\":["+ "\"tb2 list item\""+ "],"+ "\"map\":{"+ "\"tb2 map item\":\"tb2 map item\""+ "}"+ "},"+ "\"list\":["+ "\"listitem1\","+ "\"listitem2\","+ "\"listitem3\""+ "],"+ "\"map\":{"+ "\"mapitem2\":\"mapitem2\","+ "\"mapitem1\":\"mapitem1\""+ "}, " + "\"func\": function(){" + "var x=\"l\"" + "}, " + "\"nullValue\":null"+ "} "; Map<String, Object> obj = TObject.cast(JSONDecode.parse(jsonString)); assertTrue((Integer)obj.size()==7); assertTrue((Integer)obj.get("bint")==32); assertEquals((String)obj.get("string"),"helyho"); assertTrue(((List)obj.get("list")).size() == 3); assertTrue(((Map)obj.get("map")).size() == 2); Map<String, Object> tb2 = TObject.cast(obj.get("tb2")); assertTrue((Integer)tb2.get("bint")==56); assertEquals((String)tb2.get("string"),"bi\\\"ngo"); assertTrue(((List)tb2.get("list")).size() == 1); assertTrue(((Map)tb2.get("map")).size() == 1); TestObject object = JSONDecode.fromJSON(jsonString, TestObject.class); assertTrue(object.getBint()==32); assertEquals(object.getString(),"helyho"); assertTrue(object.getList().size() == 3); assertTrue(object.getMap().size() == 2); assertTrue(object.getTb2().getBint()==56); assertEquals(object.getTb2().getString(),"bi\\\"ngo"); assertTrue(object.getTb2().getList().size() == 1); assertTrue(object.getTb2().getMap().size() == 1); } }