use of org.nutz.lang.util.NutMap in project nutz by nutzam.
the class SimpleJsonIocTest method test_nan.
@Test
public void test_nan() {
NutMap map = new NutMap();
map.put("key", Double.NaN);
assertEquals("{\"key\":null}", Json.toJson(map, JsonFormat.tidy()));
}
use of org.nutz.lang.util.NutMap in project nutz by nutzam.
the class IocField method toJson.
public String toJson(JsonFormat jf) {
if (!optional)
return Json.toJson(this.value, jf);
else {
NutMap map = new NutMap();
map.put("optional", optional);
map.put(this.value.getType(), this.value.getValue());
return Json.toJson(map, jf);
}
}
use of org.nutz.lang.util.NutMap in project nutz by nutzam.
the class IocValue method toJson.
public String toJson(JsonFormat jf) {
if (this.type == null || TYPE_NORMAL.equals(type))
return Json.toJson(this.value, jf);
if (TYPE_REFER_TYPE.equals(type) && value instanceof Field) {
Field field = (Field) value;
String val = field.getName() + "#" + field.getType().getName();
return Json.toJson(new NutMap().addv(this.type, val), jf);
}
return Json.toJson(new NutMap().addv(this.type, this.value), jf);
}
use of org.nutz.lang.util.NutMap in project nutz by nutzam.
the class Lang method obj2map.
@SuppressWarnings("unchecked")
private static <T extends Map<String, Object>> void obj2map(Object obj, T map, final Map<Object, Object> memo) {
// 已经转换过了,不要递归转换
if (null == obj || memo.containsKey(obj))
return;
memo.put(obj, "");
// 如果是 Map,就直接 putAll 一下咯
if (obj instanceof Map<?, ?>) {
map.putAll(__change_map_to_nutmap((Map<String, Object>) obj, memo));
return;
}
// 下面是普通的 POJO
Mirror<?> mirror = Mirror.me(obj.getClass());
Field[] flds = mirror.getFields();
for (Field fld : flds) {
Object v = mirror.getValue(obj, fld);
if (null == v) {
continue;
}
Mirror<?> mr = Mirror.me(v);
// 普通值
if (mr.isSimple()) {
map.put(fld.getName(), v);
} else // 已经输出过了
if (memo.containsKey(v)) {
map.put(fld.getName(), null);
} else // 数组或者集合
if (mr.isColl()) {
final List<Object> list = 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(list, ele, memo);
}
});
map.put(fld.getName(), list);
} else // Map
if (mr.isMap()) {
NutMap map2 = __change_map_to_nutmap((Map<String, Object>) v, memo);
map.put(fld.getName(), map2);
} else // 看来要递归
{
T sub;
try {
sub = (T) map.getClass().newInstance();
} catch (Exception e) {
throw Lang.wrapThrow(e);
}
obj2map(v, sub, memo);
map.put(fld.getName(), sub);
}
}
}
use of org.nutz.lang.util.NutMap in project nutz by nutzam.
the class BaseTest method test_issue_1220.
@Test
public void test_issue_1220() throws IOException {
File f = File.createTempFile("abc_", ".json");
org.nutz.lang.Files.write(f, "abc");
File f2 = File.createTempFile("def_", ".json");
org.nutz.lang.Files.write(f2, "def");
upload("/upload/issue1220", new NutMap("file", new File[] { f, f2 }));
assertEquals(200, resp.getStatus());
String cnt = resp.getContent();
System.out.println(cnt);
assertEquals("2,3,3", cnt);
}
Aggregations