Search in sources :

Example 6 with NutMap

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()));
}
Also used : NutMap(org.nutz.lang.util.NutMap) Test(org.junit.Test)

Example 7 with NutMap

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);
    }
}
Also used : NutMap(org.nutz.lang.util.NutMap)

Example 8 with NutMap

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);
}
Also used : Field(java.lang.reflect.Field) NutMap(org.nutz.lang.util.NutMap)

Example 9 with NutMap

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);
        }
    }
}
Also used : Field(java.lang.reflect.Field) ArrayList(java.util.ArrayList) Map(java.util.Map) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) NutMap(org.nutz.lang.util.NutMap) FailToCastObjectException(org.nutz.castor.FailToCastObjectException) FileNotFoundException(java.io.FileNotFoundException) InvocationTargetException(java.lang.reflect.InvocationTargetException) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) IOException(java.io.IOException) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) NutMap(org.nutz.lang.util.NutMap)

Example 10 with NutMap

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);
}
Also used : File(java.io.File) NutMap(org.nutz.lang.util.NutMap) Test(org.junit.Test)

Aggregations

NutMap (org.nutz.lang.util.NutMap)37 Test (org.junit.Test)15 IOException (java.io.IOException)7 ArrayList (java.util.ArrayList)7 Map (java.util.Map)7 HashMap (java.util.HashMap)6 LinkedHashMap (java.util.LinkedHashMap)5 Date (java.util.Date)4 File (java.io.File)3 BufferedOutputStream (java.io.BufferedOutputStream)2 FileNotFoundException (java.io.FileNotFoundException)2 FileOutputStream (java.io.FileOutputStream)2 OutputStream (java.io.OutputStream)2 StringWriter (java.io.StringWriter)2 UnsupportedEncodingException (java.io.UnsupportedEncodingException)2 Field (java.lang.reflect.Field)2 BigDecimal (java.math.BigDecimal)2 List (java.util.List)2 HttpServletRequest (javax.servlet.http.HttpServletRequest)2 FilePool (org.nutz.filepool.FilePool)2