java格式化打印对象(json格式)
失败的代码,因为没有考虑数组和集合的情况~ !!!
class FormatPrintf{
public static<T> void print(T t)throws Exception{
if(isPrimitive(t.getClass())){
System.out.println(t);
}
System.out.println("{");
dfs(t,0);
System.out.println("}");
}
private static<T> void dfs(T t,int def)throws Exception{
def++;
Class<?> clazz = t.getClass();
Field[] fields=clazz.getDeclaredFields();
for(Field f:fields){
f.setAccessible(true);
Object obj=f.get(t);
printfSpace(def);
System.out.print(f.getName());
if(obj==null||isPrimitive(obj.getClass())){
System.out.println(": "+obj);
}else{
System.out.println(": {");
dfs(obj,def);
printfSpace(def);
System.out.println("}");
}
}
}
private static<T> boolean isPrimitive(Class<T> clazz) {
if (clazz.isPrimitive() || clazz.getSuperclass() == Number.class
|| clazz == Boolean.class || clazz == String.class
|| clazz == Date.class) {
return true;
}else {
return false;
}
}
private static void printfSpace(int def){
for(int i=0;i<def;i++){
System.out.print("\t");
}
}
}
调用printf方法
{
id: 12134
name: 姓名
address: {
id: 1
detal: 地址
empty: null
point: {
id: 123
ad: ad
date: Wed Aug 19 16:58:15 CST 2020
}
}
}
评论区
请写下您的评论...
猜你喜欢
file
谷歌浏览器json字符串格式化插件
插件 谷歌
1666
谷歌浏览器访问程序接口返回json格式字符串时比较混乱,如下图安装此插件后的格式如下图点击右上方按钮下载安装方法打开拓展程序,如下将插件拖到这个界面,点击同意安装插件,安装完成后如上图。
数据库基础
3685
mysql年月日时分秒格式化DATE_FORMATSELECTDATE_FORMAT(NOW(),'%Y-%m-%d%H:%i:%s')
blog
时间戳转时间格式
其他
2358
时间戳转时间格式/*时间戳转换*/functioncreateTime(v){vardate=newDate(v);vary=date.getFullYear();varm
java基础
3014
java网络(socket)中传输序列化对象Person类,注意(两个项目中的Person类字节码要相同)packagesocket;importjava.io.Serializable
blog
c#对象和json字符串转换
算法基础
1410
c#对象和json字符串转换usingSystem;
usingSystem.Runtime.Serialization.Json;
usingSystem.IO;
usingSystem.Text
框架
4429
springboot请求json数据不返回对象的指定字段在实体类的字段上加上注解importcom.fasterxml.jackson.annotation.JsonIgnore;例
ofc
css样式动态变化的宽度
weblog
1315
css样式动态变化的宽度!DOCTYPEhtmlhtmlheadmetacharset="utf-8"/title/title/headbodydivstyle="width:500px
blog
java根据多空格或tab进行字符串分割
java基础
1381
java根据多空格或tab进行字符串分割publicstaticvoidmain(String[]args){Stringtext="dsdfsdddddgsdfsd";String[]split
最新发表
归档
2018-11
12
2018-12
33
2019-01
28
2019-02
28
2019-03
32
2019-04
27
2019-05
33
2019-06
6
2019-07
12
2019-08
12
2019-09
21
2019-10
8
2019-11
15
2019-12
25
2020-01
9
2020-02
5
2020-03
16
2020-04
4
2020-06
1
2020-07
7
2020-08
13
2020-09
9
2020-10
5
2020-12
3
2021-01
1
2021-02
5
2021-03
7
2021-04
4
2021-05
4
2021-06
1
2021-07
7
2021-08
2
2021-09
8
2021-10
9
2021-11
16
2021-12
14
2022-01
7
2022-05
1
2022-08
3
2022-09
2
2022-10
2
2022-12
5
2023-01
3
2023-02
1
2023-03
4
2023-04
2
2023-06
3
2023-07
4
2023-08
1
2023-10
1
2024-02
1
2024-03
1
2024-04
1
2024-08
1
标签
算法基础
linux
前端
c++
数据结构
框架
数据库
计算机基础
储备知识
java基础
ASM
其他
深入理解java虚拟机
nginx
git
消息中间件
搜索
maven
redis
docker
dubbo
vue
导入导出
软件使用
idea插件
协议
无聊的知识
jenkins
springboot
mqtt协议
keepalived
minio
mysql
ensp
网络基础
xxl-job
rabbitmq
haproxy
srs
音视频
webrtc
javascript
加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。