use of org.nutz.lang.util.NutMap in project nutz by nutzam.
the class Lang method __change_map_to_nutmap.
@SuppressWarnings("unchecked")
private static NutMap __change_map_to_nutmap(Map<String, Object> map, final Map<Object, Object> memo) {
NutMap re = new NutMap();
for (Map.Entry<String, Object> en : map.entrySet()) {
Object v = en.getValue();
if (null == v)
continue;
Mirror<?> mr = Mirror.me(v);
// 普通值
if (mr.isSimple()) {
re.put(en.getKey(), v);
} else // 已经输出过了
if (memo.containsKey(v)) {
continue;
} else // 数组或者集合
if (mr.isColl()) {
final List<Object> list2 = new ArrayList<Object>(Lang.length(v));
Lang.each(v, new Each<Object>() {
public void invoke(int index, Object ele, int length) {
__join_ele_to_list_as_map(list2, ele, memo);
}
});
re.put(en.getKey(), list2);
} else // Map
if (mr.isMap()) {
NutMap map2 = __change_map_to_nutmap((Map<String, Object>) v, memo);
re.put(en.getKey(), map2);
} else // 看来要递归
{
NutMap map2 = obj2nutmap(v);
re.put(en.getKey(), map2);
}
}
return re;
}
use of org.nutz.lang.util.NutMap in project nutz by nutzam.
the class JsonTest method test_null_as_emtry_string.
@Test
public void test_null_as_emtry_string() {
NutMap re = new NutMap("abc", null);
assertEquals("{abc:null}", Json.toJson(re, JsonFormat.compact().setIgnoreNull(false).setQuoteName(false)));
assertEquals("{abc:\"\"}", Json.toJson(re, JsonFormat.compact().setIgnoreNull(false).setQuoteName(false).setNullAsEmtry(true)));
}
use of org.nutz.lang.util.NutMap in project nutz by nutzam.
the class JsonTest method test_json_date.
@Test
public void test_json_date() {
Castors cs = Castors.create();
cs.addCastor(MyDate2StringCastor.class);
NutMap map = new NutMap();
map.put("now", new Date());
System.out.println(Json.toJson(map, JsonFormat.compact()));
System.out.println(Json.toJson(map, JsonFormat.compact().setCastors(cs)));
}
use of org.nutz.lang.util.NutMap in project nutz by nutzam.
the class JsonTest method test_region_as_String.
@Test
public void test_region_as_String() {
String str = "{" + "n:8, " + "region:'(4,19]'," + "regionArray : ['(2,3)','[6,9)']," + "regionList : ['(2,3)','(6,8]']" + "}";
JX jx = Json.fromJson(JX.class, str);
String str2 = Json.toJson(jx);
NutMap map = Json.fromJson(NutMap.class, str2);
assertEquals(jx.getRegion().toString(), map.get("region"));
String[] ss = map.getArray("regionArray", String.class);
assertEquals(2, ss.length);
assertEquals("(2,3)", ss[0]);
assertEquals("[6,9)", ss[1]);
List<String> list = map.getList("regionList", String.class);
assertEquals(2, list.size());
assertEquals("(2,3)", list.get(0));
assertEquals("(6,8]", list.get(1));
}
use of org.nutz.lang.util.NutMap in project nutz by nutzam.
the class JsonTest method test_json_timezone.
@Test
public void test_json_timezone() throws IOException {
Date date = new Date(0);
JsonFormat jf_china = Json.fromJson(JsonFormat.class, "{dateFormat:'yyyy-MM-dd HH:mm:ss', timeZone:'GMT+8'}").setCompact(true);
JsonFormat jf_yvr = Json.fromJson(JsonFormat.class, "{dateFormat:'yyyy-MM-dd HH:mm:ss', timeZone:'GMT-8'}").setCompact(true);
String json_china = Json.toJson(new NutMap("date", date), jf_china);
String json_yvr = Json.toJson(new NutMap("date", date), jf_yvr);
System.out.println(json_china);
System.out.println(json_yvr);
assertEquals("{\"date\":\"1970-01-01 08:00:00\"}", json_china);
assertEquals("{\"date\":\"1969-12-31 16:00:00\"}", json_yvr);
}
Aggregations