Nutz.Json转为json字符串

Nutz.json转为json字符串

输出目标:字符串、file、write

格式控制:

   JsonFormat,即运行时配置

    注解配置,永久的

如果对象不大,直接转json字符串

Json.toJson(person);

输出内容为:

{
   "id" :2020,
   "name" :"周益涛",
   "age" :18,
   "sal" :7000.0
}

Map、List转换为json字符串

       Map map=new HashMap();
        map.put("name", "lizhou");
        map.put("age", 22);
        map.put("sal", 6500.0);
        System.out.println(Json.toJson(map));
        
        List list=new ArrayList();
        list.add("语文");
        list.add("数学");
        list.add("政治");
        System.out.println(Json.toJson(list));

输出格式为:

{
   "name" :"lizhou",
   "age" :22,
   "sal" :6500.0
}
["语文", "数学", "政治"]

对象过大时,输出到writer(不然耗太多内存了)(没有试过)  或直接输出到文件去

Json.toJson(writer, pet);
Json.toJsonFile(new File("d:/person.json"),person);

JsonFormat格式控制

Json.toJson系列方法,除了输出目标,就是JsonFormat了, 但注意一下,JsonFormat不会影响Json注解中的配置哦

JsonFormat提供了几种快捷配置(静态方法,但可以继续链式设置)

 

Json.toJson(person, JsonFormat.compact()); // 紧凑模式 -- 无换行,忽略null值
Json.toJson(person, JsonFormat.full());    // 全部输出模式 -- 换行,不忽略null值
Json.toJson(person, JsonFormat.nice());    // 一般模式 -- 换行,但忽略null值
Json.toJson(person, JsonFormat.forLook()); // 为了打印出来容易看,把名字去掉引号

 

JsonFormat详解:

 

//下面,将一一讲解JsonFormat中的配置项. 各种配置均可链式设置,以达到叠加效果.

indentBy //缩进所使用的字符,默认是3个空格

Json.toJson(pet, JsonFormat.full().setIndentBy("\t"));// 输出的缩进将使用tab

compact // 是否为紧凑模式,默认为false. 若为true,indent和indentBy将无效.

Json.toJson(pet, JsonFormat.full().setCompact(true)); // 不作任何换行和缩进

quoteName //key是否用双引号包起来,默认为true,同时也是json标准格式的要求. 若设置为false,则新版的jquery将解析出错.

Json.toJson(pet, JsonFormat.full().setQuoteName(false)); // 输出类似 {name:"wendal"}

ignoreNull // 控制是否忽略null值,默认为false

Json.toJson(pet, JsonFormat.full().setIgnoreNull(true)); // null值的key-value将不会输出,但空List还是会的.

actived //仅输出哪些的key,默认为null,即允许所有key. 注意,这是正则表达式!

Json.toJson(pet, JsonFormat.full().setActived("^(name|id|location)$"); // 仅输出name/id/location,其他key都不输出

locked //与actived刚好相反, 不输出哪些的key,默认为null,即允许所有key. 注意,这是正则表达式!

Json.toJson(pet, JsonFormat.full().setLocked("^(location)$"); // 不输出location,其他key正常输出

separator //分隔符,不可配置,路过吧

autoUnicode // 自动转换为unicode,默认为false. 特殊需要,一般用不上

Json.toJson(pet, JsonFormat.full().setAutoUnicode(true); // 当非英文字符出现时,转为uf003 形式 

unicodeLower //Unicode编码是大写还是小写,默认大写

dateFormat //日期格式

Json.toJson(pet, JsonFormat.full().setDateFormat("yyyyMMdd"); // 将输出类似于 {"b":"20190823"}

castors // 高级货,基本上不会用到.

indent //临时变量.
View Code

你可能感兴趣的:(Nutz.Json转为json字符串)