JSON 格式是目前最流行的数据交互格式,广泛应用于前后端分离的系统。但也有一些场合不适合使用 JSON 格式。

1 JSON 格式弊端

有这样的一个需求:希望把客户端的日志上传到服务器存储起来。原先的设计是把 JSON 格式写入日志文件。形如:

[{"logTypeComment":"info","logTimeComment":"2022-08-xx 10:52:59","content":"坐席日志"},{"logTypeComment":"info","logTimeComment":"2022-08-xx 11:02:13","content":"坐席日志"},{"logTypeComment":"info","logTimeComment":"2022-08-xx 11:05:03","content":"坐席日志"}

如果日志内容简短,可以直接在日志文件中查看,但如果内容很长,那么就难以阅读。必须把日志从服务器下载下来,放到 JSON 格式化工具中查看。

下面是一个真实示例,记录的日志内容非常长,难以直接查看:

维护人员必须放到 JSON 格式化器中进行美化后再查看:



这种方式在实际使用中并不方便。维护人员必须把日志文件拷贝到本地,然后复制相应的内容,再粘贴到 JSON 美化器中进行查看。操作繁琐,而且在复制的时候容易出错。

2 解决方法

一种解决方法是对日志内容进行遍历,一行一行打印出来。日志内容前后加上打印标识,并对打印内容进行格式化。形如:



另一种更好的方法是把日志内容写入库表,然后使用日志 web 平台,来展示这些内容。


写入日志文件中的内容,JSON 格式并不适用。应该尽量按行进行打印输出,并在输出前后打印标识。

说说 JSON 格式的弊端与解决方法的更多相关文章

  1. .NET MVC Json()处理大数据异常解决方法

    [1-部分原文]: .NET MVC Json()处理大数据异常解决方法 整个项目采用微软的ASP.NET MVC3进行开发,前端显示采用EasyUI框架,图表的显示用的是Highcharts,主要进 ...

  2. json跨域原理及解决方法

    这一篇文章呢,主要是之前一直听别人讲json跨域跨域,但是还是一头雾水,只知其一,于是一怒之下,翻阅各种资料,如果有不正确的地方,劳烦指正一下^_^ 首先,先了解浏览器有一个很重要安全性限制,即为同源 ...

  3. PHP json_decode 函数解析 json 结果为 NULL 的解决方法

    在做网站 CMS 模块时,对于模块内容 content 字段,保存的是 json 格式的字符串,所以在后台进行模块内容的编辑操作 ( 取出保存的数据 ) 时,需要用到 json_decode() 函数 ...

  4. [转]ASP.NET MVC Json()处理大数据异常解决方法 json maxjsonlength

    本文转自:http://blog.csdn.net/blacksource/article/details/18797055 先对项目做个简单介绍: 整个项目采用微软的ASP.NET MVC3进行开发 ...

  5. PIL PNG格式通道问题的解决方法

    近来研究图片的剪切拼接,用到PIL,在打开PNG格式保存为JPEG格式的图片发现报错: import os from PIL import Image im = Image.open(r'E:\wor ...

  6. php url链接地址传数组方法 json_decode解析数组失败 经过url链接的json数组解析出错的解决方法 (原)

    先说出现的问题: 请求一个接口(例如  http://www.a.com/getmes.php)需要传一个数组参数 param ,值为 数组 array(0=>'刘师傅',1=>'1760 ...

  7. Android Studio 解析json文件出现中文乱码解决方法

    作为一个Android开发初学者,好不容易找到解决方法,跟大家分享一下, 其实很简单,只要保持服务器上的文件(date2.json)与软件的编码方式一样就行. 我用的Android Studio是ut ...

  8. kafkaStream解析json出错导致程序中断的解决方法

    出错在 KStreamFlatMapValues 方法执行时,由于json异常数据无法解析,结果生成的值为null,报错信息如下: 2018-04-18 19:21:04,776 ERROR [app ...

  9. get请求传递json格式数据的两种方法

    get请求参数为json格式数据,使用pyhton+request的两种实现方式如下: 方法一:使用requests.request() 示例代码如下: 1.导入requests和json impor ...

随机推荐

  1. 《The Tail At Scale》论文详解

    简介 用户体验与软件的流畅程度是呈正相关的,所以对于软件服务提供方来说,保持服务耗时在用户能接受的范围内就是一件必要的事情.但是在大型分布式系统上保持一个稳定的耗时又是一个很大的挑战,这篇文章解析的是 ...

  2. 叮,GitHub 到账 550 美元「GitHub 热点速览 v.22.26」

    作者:HelloGitHub-小鱼干 如果你关注 GitHub 官方动态,你会发现它们最近频频点赞世界各地开发者晒出的 GitHub $550 sponsor 截图,有什么比"白嫖" ...

  3. NC24840 [USACO 2009 Mar S]Look Up

    NC24840 [USACO 2009 Mar S]Look Up 题目 题目描述 Farmer John's N (1 <= N <= 100,000) cows, convenient ...

  4. CentOS6安装使用ntp同步时间

    [root@server yum.repos.d]# yum install ntp已加载插件:fastestmirror, priorities, refresh-packagekit, secur ...

  5. python sock5代理

    安装 pysocks:pip install pysocks # coding:utf-8 ''' @version: python3.6 @author: 'eric' @license: Apac ...

  6. 「一本通 1.1 例 4」加工生产调度(贪心算法)(luogu P1248)题解

    加工生产调度 题目描述 某工厂收到了 n n n 个产品的订单,这 n n n 个产品分别在 A.B 两个车间加工,并且必须先在 A 车间加工后才可以到 B 车间加工. 某个产品 i i i 在 A. ...

  7. 1.9. 触摸按钮(touch pad)测试

    1.9.1. 基础 Esp32部分GPIO内置了touch按钮功能(电容式),具体有touch功能的引脚在配置为touchpad后,单片机读入的电容值随是否被触碰发生变化,系统根据电容值的变化判断判断 ...

  8. element多重校验报please transfer a valid prop path to form item

  9. YII服务定位器依赖注入

    <?php /** * Created by PhpStorm. * Date: 2016/5/25 * Time: 18:33 * 服务定位器依赖注入 */ namespace fronten ...

  10. Vue 状态管理之vuex && {mapState,mapGetters}

    1 # 一.理解vuex 2 1.概念:专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读写),也是一种组件间通信的方式,且适用于任意组件间 ...