zoukankan      html  css  js  c++  java
  • java格式化json串

    package com.loan.modules.extbiz.in.rabbitmq.util;
    
    import com.loan.modules.extbiz.in.rabbitmq.exception.JsonException;
    
    import net.sf.json.JSONException;
    import net.sf.json.JSONObject;
    
    public class FormatUtil {
        /**
         * 格式化
         * 
         * @param jsonStr
         * @return
         * @author lizhgb
         * @Date 2015-10-14 下午1:17:35
         * @Modified 2017-04-28 下午8:55:35
         */
        public static String formatJson(String jsonStr) {
            if (null == jsonStr || "".equals(jsonStr))
                return "";
            StringBuilder sb = new StringBuilder();
            char last = '';
            char current = '';
            int indent = 0;
            boolean isInQuotationMarks = false;
            for (int i = 0; i < jsonStr.length(); i++) {
                last = current;
                current = jsonStr.charAt(i);
                switch (current) {
                case '"':
                                    if (last != '\'){
                        isInQuotationMarks = !isInQuotationMarks;
                                    }
                    sb.append(current);
                    break;
                case '{':
                case '[':
                    sb.append(current);
                    if (!isInQuotationMarks) {
                        sb.append('
    ');
                        indent++;
                        addIndentBlank(sb, indent);
                    }
                    break;
                case '}':
                case ']':
                    if (!isInQuotationMarks) {
                        sb.append('
    ');
                        indent--;
                        addIndentBlank(sb, indent);
                    }
                    sb.append(current);
                    break;
                case ',':
                    sb.append(current);
                    if (last != '\' && !isInQuotationMarks) {
                        sb.append('
    ');
                        addIndentBlank(sb, indent);
                    }
                    break;
                default:
                    sb.append(current);
                }
            }
    
            return sb.toString();
        }
    
        /**
         * 添加space
         * 
         * @param sb
         * @param indent
         * @author lizhgb
         * @Date 2015-10-14 上午10:38:04
         */
        private static void addIndentBlank(StringBuilder sb, int indent) {
            for (int i = 0; i < indent; i++) {
                sb.append('	');
            }
        }
        
        public static    void ifgetJson(String reqjson) throws JsonException{
            try {
                JSONObject jsonObject = JSONObject.fromObject(reqjson);
            } catch (JSONException e) {
                throw new JsonException("进件系统请求json串,不是正规json格式,请求json串为=="+reqjson);
    
            }
        }
    }
  • 相关阅读:
    Java关键字transient和volatile小结(转)
    1、环境
    SSH框架搭建
    2.4 easyui
    PHP操作大文件
    PHP小工具
    PHP正则替换函数收集
    PHP小知识收集
    Yii ACF(accessController)简单控权
    linux 文件存放目录
  • 原文地址:https://www.cnblogs.com/yy123/p/6927362.html
Copyright © 2011-2022 走看看