package com.guodian.kpi.common;
import java.text.SimpleDateFormat;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
/**
* Json帮助类
*
* @author twz
*/
public final class JsonUtils {
private static final ObjectMapper objectMapper = new ObjectMapper();
static {
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"));
}
private JsonUtils() {
}
public static final String toJson(Object obj) {
try {
return objectMapper.writeValueAsString(obj);
} catch (Throwable e) {
throw new RuntimeException(e);
}
}
public static final <T> T toObject(Class<T> clazz, String json) {
try {
return objectMapper.readValue(json, clazz);
} catch (Throwable e) {
throw new RuntimeException(e);
}
}
private static String getLevelStr(int level) {
StringBuffer levelStr = new StringBuffer();
for (int levelI = 0; levelI < level; levelI++) {
levelStr.append(" ");
}
return levelStr.toString();
}
public static String formatJson(String s) {
int level = 0;
StringBuffer jsonForMatStr = new StringBuffer();
for (int index = 0; index < s.length(); index++)// 将字符串中的字符逐个按行输出
{
// 获取s中的每个字符
char c = s.charAt(index);
// level大于0并且jsonForMatStr中的最后一个字符为\n,jsonForMatStr加入\t
if (level > 0 && '\n' == jsonForMatStr.charAt(jsonForMatStr.length() - 1)) {
jsonForMatStr.append(getLevelStr(level));
}
// 遇到"{"和"["要增加空格和换行,遇到"}"和"]"要减少空格,以对应,遇到","要换行
switch (c) {
case '{':
case '[':
jsonForMatStr.append(c);
if (s.charAt(index+1) != '\n'){
jsonForMatStr.append("\n");
}
level++;
break;
case ',':
jsonForMatStr.append(c);
if (s.charAt(index+1) != '\n'){
jsonForMatStr.append("\n");
}
break;
case '}':
case ']':
jsonForMatStr.append(c);
if (s.charAt(index+1) != '\n'){
jsonForMatStr.append("\n");
}
level--;
jsonForMatStr.append(getLevelStr(level));
jsonForMatStr.append(c);
break;
default:
jsonForMatStr.append(c);
break;
}
}
return jsonForMatStr.toString();
}
}
/*
* 修改历史
* $Log$
*/
springboot+mybatis+resteasy.rar_mybatis_springboot_springboot my
版权申诉
138 浏览量
2022-09-15
00:44:08
上传
评论
收藏 16KB RAR 举报
Kinonoyomeo
- 粉丝: 74
- 资源: 1万+
最新资源
- Qt开发知识、经验总结 包括Qss,数据库,Excel,Model/View等
- IV数据.xlsx
- 一些深度学习中的小例子,适合新手学习使用
- foldcraftlauncher_262944.apk
- 珍藏多年的基于matlab实现潮流计算程序源代码集合,包含多个潮流计算程序.rar
- 使用FPGA实现串-并型乘法器
- 基于matlab实现针对基于双曲线定位的DV-Hop算法中误差误差出一种基于加权双曲线定位的DV-Hop改进算法.rar
- 基于matlab实现由遗传算法开发的整数规划,车辆调度问题.rar
- 电视家7.0(对电视配置要求高).apk
- 免费计算机毕业设计-基于JavaEE的医院病历管理系统设计与实现(包含论文+源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0