1. package com.loan.modules.extbiz.in.rabbitmq.util;
  2.  
  3. import com.loan.modules.extbiz.in.rabbitmq.exception.JsonException;
  4.  
  5. import net.sf.json.JSONException;
  6. import net.sf.json.JSONObject;
  7.  
  8. public class FormatUtil {
  9. /**
  10. * 格式化
  11. *
  12. * @param jsonStr
  13. * @return
  14. * @author lizhgb
  15. * @Date 2015-10-14 下午1:17:35
  16. * @Modified 2017-04-28 下午8:55:35
  17. */
  18. public static String formatJson(String jsonStr) {
  19. if (null == jsonStr || "".equals(jsonStr))
  20. return "";
  21. StringBuilder sb = new StringBuilder();
  22. char last = '\0';
  23. char current = '\0';
  24. int indent = 0;
  25. boolean isInQuotationMarks = false;
  26. for (int i = 0; i < jsonStr.length(); i++) {
  27. last = current;
  28. current = jsonStr.charAt(i);
  29. switch (current) {
  30. case '"':
  31. if (last != '\\'){
  32. isInQuotationMarks = !isInQuotationMarks;
  33. }
  34. sb.append(current);
  35. break;
  36. case '{':
  37. case '[':
  38. sb.append(current);
  39. if (!isInQuotationMarks) {
  40. sb.append('\n');
  41. indent++;
  42. addIndentBlank(sb, indent);
  43. }
  44. break;
  45. case '}':
  46. case ']':
  47. if (!isInQuotationMarks) {
  48. sb.append('\n');
  49. indent--;
  50. addIndentBlank(sb, indent);
  51. }
  52. sb.append(current);
  53. break;
  54. case ',':
  55. sb.append(current);
  56. if (last != '\\' && !isInQuotationMarks) {
  57. sb.append('\n');
  58. addIndentBlank(sb, indent);
  59. }
  60. break;
  61. default:
  62. sb.append(current);
  63. }
  64. }
  65.  
  66. return sb.toString();
  67. }
  68.  
  69. /**
  70. * 添加space
  71. *
  72. * @param sb
  73. * @param indent
  74. * @author lizhgb
  75. * @Date 2015-10-14 上午10:38:04
  76. */
  77. private static void addIndentBlank(StringBuilder sb, int indent) {
  78. for (int i = 0; i < indent; i++) {
  79. sb.append('\t');
  80. }
  81. }
  82.  
  83. public static void ifgetJson(String reqjson) throws JsonException{
  84. try {
  85. JSONObject jsonObject = JSONObject.fromObject(reqjson);
  86. } catch (JSONException e) {
  87. throw new JsonException("进件系统请求json串,不是正规json格式,请求json串为=="+reqjson);
  88.  
  89. }
  90. }
  91. }

java格式化json串的更多相关文章

  1. Java 转JSON串

    一.JSON (JavaScript Object Notation) 1.轻量级数据交换格式能够替代XML的工作 2.数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小(简洁.简单.体积小 ...

  2. java解析json串获取key和value

    网上例子巨多,纯属个人笔记: JSONObject maleArray = maleObject.getJSONObject("extension"); Iterator<S ...

  3. gson在java和json串之间的应用

    public class JsonToJavaUtil { /** * 将json转成成javaBean对象 * * @param <T> * 返回类型 * @param json * 字 ...

  4. java解析json串常识

    注意:JSONObject 和JSONArray的使用区别 报错:A JSONObject text must begin with '{' at character 1 of 分析:  JSONOb ...

  5. JS格式化JSON串显示在表格中

    JS代码如下,这里用了jq的语法: <script type="text/javascript"> $(function(){ var text = $("# ...

  6. java拼接JSON串

    String str = "{\"route\":\"onGift\",\"time\":\"\",\&quo ...

  7. java中JSON串转换并获取数据

    String strAllImp= " [{"id":2,"name":"还不错","count":3}]&q ...

  8. jsp传给java属性,java生成json串,方便以后取出来

    前台代码 $.ajax({ url : '<%=basePath%>userorderother/canUpdateCust.do', type : 'POST', data: {'kdc ...

  9. java 格式化json字符串

    须要下载:gson-2.2.4.jar

随机推荐

  1. Hive 中的四种排序详解,再也不会混淆用法了

    Hive 中的四种排序 排序操作是一个比较常见的操作,尤其是在数据分析的时候,我们往往需要对数据进行排序,hive 中和排序相关的有四个关键字,今天我们就看一下,它们都是什么作用. 数据准备 下面我们 ...

  2. Date、SimpleDateFormat以及Calendar

    Date类 毫秒值 java.util.Date:表示日期和时间的类 类Date表示特定的瞬间,精确到毫秒 日期转毫秒,号秒转日期 中国属于东八区,会把事件增加8个小时 1天 = 4 * 60 * 6 ...

  3. 20210107 - python 的Excel自动化

    1.前置条件:用python, 开发工具pycharm 2.安装包: pip install openpyxl,  该包支持:xlsx, 但是不支持xlrd.xlwt格式的文件 3.概念介绍: 一个e ...

  4. EasyUI 表单插件 multiline easyui-textbox 多行换行失效问题

    1.问题描述:原始html: <input class="easyui-textbox" name="myname" id="myid" ...

  5. 【JavaWeb】AJAX 请求

    AJAX 请求 什么是 AJAX AJAX(Asynchronous JavaScript And XMl),即异步 JS 和 XML.是指一种创建交互式网页应用的网页开发技术. AJAX 是一种浏览 ...

  6. 深入理解MySQL索引(下)

    先创建一个T表. mysql> create table T ( ID int primary key, k int NOT NULL DEFAULT 0, s varchar(16) NOT ...

  7. 比较Power BI和Tableau,好比用奔驰对比奥迪

    经常会有人问Power BI和Tableau的区别,好吧,为了非IT专业的能看懂,咱们就用车,奔驰和奥迪来对比一下.因为他们确实有太多相似之处. 所以Power BI VS Tableau,就相当于国 ...

  8. 【Oracle】想查询相关的v$视图,但是提示表或视图不存在解决办法

    原因是使用的用户没有相关的查询权限导致 解决办法: grant select  any dictionary to 用户;    --这个权限比较大 这个权限是最低的要求,但是可以访问到v$相关视图 ...

  9. Ubuntu16.04安装MySQL8.0

    1.Ubuntu换源(阿里云) sudo cp /etc/apt/sources.list /etc/apt/sources.list.baksudo vi /etc/apt/sources.list ...

  10. k8s用kubectl管理应用升级,服务发布与回滚,扩缩容

    应用升级 Kubectl set image --help 有案例指定新版本 [root@k8s-master ~]# kubectl set image deployment/nginx nginx ...