本文将介绍一下如何使用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数据的操作提供帮助。
本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。