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<String,Object> map=new HashMap(); map.put("name", "lizhou"); map.put("age", 22); map.put("sal", 6500.0); System.out.println(Json.toJson(map)); List<String> list=new ArrayList<String>(); 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 //临时变量.
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2019-01-09 BigDecimal保留小数