• 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);
    
            }
        }
    }
  • 相关阅读:
    在sql2005中附加数据库时出现无法打开物理文件
    设置和获取文本框中的光标位置
    Dock(停靠)优先小经验
    asp.net(c#)GridView实现鼠标悬停高亮显示
    C# 截取屏幕个人总结
    【作品发布】将硬盘分区为整数的方法
    C# 调用系统“运行”功能
    Linq 在绑定控件后,DataItem的用法
    (一)先配置一些程序 小青年
    ruby中的File操作 小青年
  • 原文地址:https://www.cnblogs.com/yy123/p/6927362.html
Copyright © 2020-2023  润新知