java常用工具类——json处理工具类(代码片段)

liusandy liusandy     2023-01-16     204

关键词:

package com.springboot.commons.utils;

import com.springboot.commons.scan.JacksonObjectMapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import java.io.IOException;
import java.util.Iterator;

/**
 * @author Lius
 * @date 2018/10/26 14:34
 * @description JSON 工具类
 */
public class JsonUtils 
    private static final String JSONARRAY = "net.sf.json.JSONArray";

    public JsonUtils() 
    

    private static ObjectMapper getInstance() 
        return JacksonHolder.INSTANCE;
    

    private static class JacksonHolder 
        private static ObjectMapper INSTANCE = new JacksonObjectMapper();
    

    /**
     * 将对象序列化成JSON对象
     *
     * @param object java对象
     * @author Lius
     * @date 2018/10/26 14:37
     */
    public static String toJson(Object object) 
        try 
            return getInstance().writeValueAsString(object);
         catch (JsonProcessingException e) 
            throw new RuntimeException();
        
    

    /**
     * 将json反序列化成java对象
     *
     * @param jsonString 需要序列化的json字符串
     * @param valueType  序列化成的对象
     * @author Lius
     * @date 2018/10/26 14:42
     */
    public static <T> T parse(String jsonString, Class<T> valueType) 
        try 
            return getInstance().readValue(jsonString, valueType);
         catch (IOException e) 
            throw new RuntimeException();
        
    

    /**
     * 判断所有json字段是否全为空
     *
     * @param jsonObj JSON 对象
     * @author Lius
     * @date 2018/10/26 14:51
     */
    public boolean isAllFieldNotNull(Object jsonObj) throws Exception 
        boolean flag = false;
        if (jsonObj == null) 
            return false;
        
        String type = jsonObj.getClass().getName();
        // Object对象
        if (!JSONARRAY.equals(type)) 
            JSONObject jsonObject = JSONObject.fromObject(jsonObj);
            Iterator iterator = jsonObject.keys();
            while (iterator.hasNext()) 
                String key = (String) iterator.next();
                if (jsonObject.get(key) != null && !"".equals(jsonObject.get(key))) 
                    flag = true;
                
            
            return flag;
         else 
            JSONArray jsonArray = JSONArray.fromObject(jsonObj);
            for (Object object : jsonArray) 
                JSONObject jsonObject = JSONObject.fromObject(object);
                Iterator iterator = jsonObject.keys();
                while (iterator.hasNext()) 
                    String key = (String) iterator.next();
                    if (jsonObject.get(key) != null && !"".equals(jsonObject.get(key))) 
                        flag = true;
                    
                
                return flag;
            
        
        return true;
    
/**
     * 把JSON字符串转换为Map形式
     * @author Lius
     * @date 2018/11/8 9:19
    */
    public static Map<String, Object> jSON2Map(String jsonStr) 
        Map<String, Object> map = new HashMap<String, Object>();
        JSONObject json = JSONObject.fromObject(jsonStr);
        for (Object k : json.keySet()) 
            Object v = json.get(k);
            if (v instanceof JSONArray) 
                List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
                Iterator it = ((JSONArray) v).iterator();
                while (it.hasNext()) 
                    Object json2 = it.next();
                    list.add(jSON2Map(json2.toString()));
                
                map.put(k.toString(), list);
             else 
                map.put(k.toString(), v);
            
        
        return map;
    

    public static void main(String[] args) 
        String json = ""name":"zhangsan","age":20,"loginName":"loginName","password":"[email protected]"";

    

  • JacksonObjectMapper 代码如下
package com.springboot.commons.scan;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.TimeZone;

/**
 * 解决Jackson 差8小时的问题
 * @author Lius
 */
@Component("jacksonObjectMapper")
public class JacksonObjectMapper extends ObjectMapper 

    private static final long serialVersionUID = 4288193147502386170L;

    private static final Locale CHINA = Locale.CHINA;
    
    public JacksonObjectMapper() 
        this.setLocale(CHINA);
        this.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", CHINA));
        this.setTimeZone(TimeZone.getTimeZone("GMT+8"));
    


java时间处理工具类(代码片段)

查看详情

java对象处理的工具类:处理对象(代码片段)

查看详情

处理json的工具类(本类为处理json的工具类)(代码片段)

<jackson.version>2.2.3</jackson.version><!--json--><dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.3</version><classifier>jdk15</classifier><scope>compile</scope></depende... 查看详情

java常用工具类---image图片处理工具类json工具类

packagecom.jarvis.base.util;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io. 查看详情

java常用工具类---image图片处理工具类json工具类

        packagecom.jarvis.base.util;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.FileInputStream;importjava.io.FileOutpu 查看详情

java工具类-列表分段处理(代码片段)

java.util.List分段使用google的guava类库对List分段处理    List<Integer>intList=Lists.newArrayList(1,2,3,4,5,6,7,8);List<List<Integer>>subSets=Lists.partition(intList,3);List<Integer>last=su 查看详情

httpclient工具类,post请求发送json字符串参数,中文乱码处理(代码片段)

在使用httpclient发送post请求的时候,接收端中文乱码问题解决。正文:我们都知道,一般情况下使用post请求是不会出现中文乱码的。可是在使用httpclient发送post请求报文含中文的时候在发送端数据正常但是到了服务器端就中文乱... 查看详情

重学springboot系列之json处理工具类(代码片段)

重学springboot系列之JSON处理工具类FastJSON、Gson和Jackson对比在Spring中注解方法使用Jackson常用注解手动数据转换BugJackson全局配置FastJSON、Gson和Jackson对比开源的Jackson:SpringBoot默认是使用Jackson作为JSON数据格式处理的类库,Jack... 查看详情

java工具类-转换字符编码(代码片段)

packagecommon;/***字符串处理公用类*/publicclassDealString/***转换字符编码由“iso-8859-1”西文转换为简体中文*/publicstaticStringtoGb(StringuniStr)StringgbStr="";if(uniStr==null)uniStr="";trybyte[]tempByte=uniSt 查看详情

httpclientuntils工具类的使用及注意事项(包括我改进的工具类和controller端的注意事项附json工具类)(代码片段)

 HttpClient工具类(我改过):packagecom.taotao.httpclient;importjava.io.IOException;importjava.net.URI;importjava.util.ArrayList;importjava.util.List;importjava.util.Map;importorg.apache.http.NameValuePai 查看详情

非常强大的java时间处理工具类!(代码片段)

xk-time是时间转换,时间计算,时间格式化,时间解析,日历,时间cron表达式和时间NLP等的工具,使用Java8,线程安全,简单易用,多达70几种常用日期格式化模板,支持Java8时间类和Date,... 查看详情

整理收集的一些常用java工具类(代码片段)

1.json转换工具1.packagecom.taotao.utils;3.importjava.util.List;5.importcom.fasterxml.jackson.core.JsonProcessingException;6.importcom.fasterxml.jackson.databind.JavaType;7.importcom.fasterxml.jackson.databind.JsonNode;8.importcom.fasterxml.jackson.databind.ObjectMapper;10./**11.*json转换工具... 查看详情

图片处理-php工具类(代码片段)

图片处理-PHP工具类<?php/***CreatedbyPhpStorm.*User:peeke*Date:2020/4/22*Time:08:53*/namespaceApp\\common\\Helpers\\tools;classImageHelper/***增加图片样式,防止图片在手机端显示溢出**@param$content*@returnstring*/publicstatic 查看详情

9月30json工具类(代码片段)

importjava.util.List;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;publicclassJsonUtils/****将List对象序列化为JSON文本*/publicstaticStringtoJSONString(Objectobj)returnJSON.toJSONString 查看详情

利用jackson封装常用jsonutil工具类(代码片段)

...是使用JSON格式,那必然会封装一些常用的Json数据转化的工具类,本文讲解下如何利用Jackson封装高复用性的Json转换工具类。转换格式属性配置首先,我们需要对Json对象转换自定义些常用配置属性,封装成适合项目接口规则的工... 查看详情

java-properties文件读取工具类(代码片段)

1importorg.apache.commons.configuration.ConfigurationException;2importorg.apache.commons.configuration.PropertiesConfiguration;34importcom.alibaba.fastjson.JSON;5importcom.alibaba.fastjson.JSONObject; 查看详情

flutterutils工具库

...储工具类10.辅助计算工具类11.加密和解密工具类12.Num格式处理工具类13.设备参数获取工具类14.图片处理工具类15.网络处理工具类16.常用正则工具类1 查看详情

图片处理工具类util(代码片段)

PathUtilpackageutil;publicclassPathUtilprivatestaticStringseperator=System.getProperty("file.separator");//获取根目录publicstaticStringgetImgBasePath()Stringos=System.getProperty("os.name");StringbasePat 查看详情