1、JSON 是一种通用的数据格式
全称:JavaScript Object Notation(JavaScript 对象表示法)。
本质:一种轻量级的、基于文本的、完全独立于编程语言的数据交换格式。它易于人阅读和编写,同时也易于机器解析和生成。
广泛应用场景:
Web API:绝大多数 RESTful API 使用 JSON 作为请求和响应的数据格式。
配置文件:许多现代软件(如 VS Code, npm, Docker Compose)使用 *.json 文件作为配置文件。
NoSQL 数据库:MongoDB 等数据库使用类似 JSON 的格式(BSON)来存储文档。
日志文件:应用程序可以将结构化的日志输出为 JSON 格式,便于后续用日志分析工具(如 ELK Stack)进行处理。
任何需要结构化数据传输或存储的场景。
简单来说,JSON 之于数据,就像 TXT 之于文本,JPEG 之于图片一样,它是一种通用的、标准化的格式。
2、Kafka 是一个消息队列/事件流平台
本质:Kafka 是一个分布式的、高吞吐量、可持久化的流处理平台。它主要负责接收、存储和分发消息(或称为“事件”)。
数据格式无关性:Kafka 在设计上是数据格式中立的。它不关心你发送的消息内容是什么格式。对于 Kafka 的 Broker 来说,消息只是一个字节数组(byte[])。
向 Kafka 发送任何格式的数据:
JSON
XML
纯文本
CSV
自定义的二进制格式等等。
3、JSON 与 Kafka 的关系
为什么经常将 JSON 和 Kafka 联系在一起呢?
常见的组合:由于 JSON 的通用性和易用性,它成为了在 Kafka 中传输结构化数据的最常见选择之一。
工作流程:
一个生产者应用程序(Producer)将你的业务数据(例如,一个订单对象)序列化成一个 JSON 字符串。
生产者将这个 JSON 字符串转换为字节数组,然后发送到 Kafka 主题(Topic)。
Kafka 存储和传递这些字节。
一个消费者应用程序(Consumer)从 Kafka 拉取到这些字节。
消费者将字节数组反序列化回 JSON 字符串,然后再解析成它自己能理解的业务对象(如 Order 对象)。
可以把 Kafka 想象成一条高效的“数据传输管道”,而 JSON 则是流经这条管道的“货物”的一种流行“包装格式”。管道本身不关心里面运的是什么东西(格式),只要包装得当(是字节数组)即可。
4、JSON文件的格式化方法
可以用jq命令格式化,这Linux下,这个命令需要安装
这这个网站进行格式化输出:
https://jsonformatter.curiousconcept.com/#

