Json格式化

Json格式化 公开 已发布(自动)

如何安装动作?
复制Ta的推荐码
专业摸鱼的程序员

适用于
分类
脚本

1 个动作单 收藏了此动作。

更多信息
分享时间 2024-06-24 15:16
最后更新 27天15小时前
修订版本 9
用户许可 可自己使用或修改,不可再分享
Quicker版本 1.43.9
动作大小 25.2 KB

分享到

「用于android系统日志中提取到的json格式化,主要处理时间tag多行等情况」

简介

默认正则(可自行修改):

1. tag及之前的内容匹配(如果要自行修改,需要保证第2个分组为tag)  ^[0-9.:\s\-]+([^:]\s)+(\S{2,})           

匹配情况1(一般系统日志文件中的形式)

06-24 11:24:53.333  1901  1982 D aaa[0]:

匹配情况2(一般studio控制台中的形式,同时兼容部分tag太长时省略中间部分的情况)

2024-07-10 12:21:30.129 10213-10213 aaaaaaaaaaaaaaaaaaaaaaaa[9] packagename D onSuccess1:

2024-07-10 12:21:30.129 10213-10213 aaaaaaaaaa...aaaaaa[10] packagename D onSuccess1:


用于多行日志时区分非json内容与json内容,并对非json内容进行移除,对json内容进行合并


2. 多行tag变化后缀匹配(可设置为空,空则视为没有变化后缀)    \[[0-9]{1,2}\]          匹配aaa[0]中的[0]

用于多行tag变化时,提取正确的tag用于多行日志时移除可能存在的多行日志中夹杂的无效内容.

如下形式:

06-24 11:24:53.333  1901  1982 D aaa[0]:

06-24 11:24:53.333  1901  1982 D aaa[1]:

06-24 11:24:53.333  1901  1982 D bbb:

06-24 11:24:53.333  1901  1982 D aaa[2]:


当前支持情况:

时间+tag:

1.单行:{前可以有任意非{内容,后面接以{开始,为最基础的json


2.多行

先使用第一个正则提取出tag,取数量最多的tag作为正确tag,删除不符合的行及符合每行中tag及之前的内容:

再使用第2个tag之后变化的tag后缀部分,再根据最长公共起始串进行删除,合并剩余部分

06-24 11:24:53.333  1901  1982 D aaa[0]:

06-24 11:24:53.333  1901  1982 D aaa[1]:

06-24 11:24:53.333  1901  1982 D bbb:

06-24 11:24:53.333  1901  1982 D aaa[2]:

先通过第一个正则提取到tag aaa,同时删除不符合的bbb行,再根据第二个正则删除[n],后续在删除最长公共起始串: 最后进行合并



3. 默认开启自动反转义,对json中包含的转义文本自动反转义并格式化

如{"a":"a1","b":"[{\"b\":\"c\"}]"}这种形式的,如果不进行反转义,后面部分会被当做字符串,不会进行格式化,不方便查看参数



最近更新

修订版本 更新时间 更新说明
9 27天15小时前 兼容句末有干扰内容的情况
8 2024-07-17 14:55 删除设置项中的示例正则提示
7 2024-07-17 14:38 更新多行时的检测方案

最近讨论

暂无讨论