Cyberchef实用功能之-json line格式文件美化和查询

本文将介绍一下如何使用cyberchef对json line格式数据进行美化方便阅读,以及json line格式数据的批量查询操作。

之前的文章介绍了json格式数据的美化和查询,即Cyberchef实用功能之-json解析美化和转换,Cyberchef实用功能之-批量提取json数据文件的字段内容,详见这里这里

本文的目录结构如下,可以直接跳转到对应的章节查看:
在这里插入图片描述

json line介绍

在将json格式的数据存储为文件的时候通常会存储为json line的格式,即每一行是一个json的object。关于json和jsonl的解释询问deepseek如下:
在这里插入图片描述
可以看到由于写日志、流式数据存储的原因,jsonl格式的文件更为的常见。

测试数据

为了后续演示对于jsonl格式数据的美化和查询,构造如下的测试数据进行说明:

{"作者":"村中少年","名称":"Cyberchef 从入门到精通教程","URL":"https://blog.csdn.net/javajiawei/category_12724757.html","分类":"网络安全"}
{"作者":"村中少年","名称":"脱敏Deepseek/Chatgpt等AI大模型中的敏感数据","URL":"https://blog.csdn.net/javajiawei/category_12920978.html"}
{"作者":"村中少年","名称":"网络攻防协议实战分析","URL":"https://blog.csdn.net/javajiawei/category_10243824.html"}
{"作者":"村中少年","名称":"Wireshark从入门到精通","URL":"https://blog.csdn.net/javajiawei/category_9583097.html"}

jsonl美化

直接使用cyberchef的json beautify操作进行解析,会提示错误,如下:
在这里插入图片描述
原因是json beautify的输入为json格式的object,对于jsonl是无法解析的。

这个时候就需要用到cyberchef的其他操作来辅助处理每一行的数据,用到的就是fork操作。关于fork操作的详细用法,参考本专栏之前的文章,《Cyberchef基础概念之-分叉合并-fork/merge》,这里

使用fork和json beautify组合操作解析jsonl格式的数据如下:
在这里插入图片描述
可以看到fork会逐行读取数据然后交由json beautify进行美化处理输出。

jsonl查询

同理使用jpath操作也是无法对于jsonl格式数据直接查询,如下:
在这里插入图片描述
配合fork操作,如下:
在这里插入图片描述
当然关于jpath操作的更多用法,详见《Cyberchef实用功能之-批量提取json数据文件的字段内容》,这里,本文不在赘述。

错误案例

但是有的时候会遇到如下的错误提示:
在这里插入图片描述
原因在于jsonl文件最后一行为空,这个时候fork操作读取每一行喂给jpath操作,但是最后一行不是json格式,因此出现错误。这个时候去除最后一行的空行即可成功的解析。

当然你也可以不修改源文件,探索cyberchef的其他操作进行组合,例如使用head 只取前若干行的数据,避免最后非json格式的数据,如下:
在这里插入图片描述
希望上述的内容对于你在工作,学习的过程中对于你json line数据的操作提供帮助。

扫描二维码关注公众号,回复: 17643047 查看本文章

本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里