[具身智能-341]:JSON本质上结构化数据的结构描述文件,与C语言和Python定义结构化、对象化的数据的目标是一样的,只是语法规则的差易。

张开发
2026/4/11 10:21:29 15 分钟阅读

分享文章

[具身智能-341]:JSON本质上结构化数据的结构描述文件,与C语言和Python定义结构化、对象化的数据的目标是一样的,只是语法规则的差易。
JSON、C 语言的结构体和 Python 的类/数据类本质上都是为了解决同一个问题如何将现实世界中复杂的对象比如一个“用户”或“订单”在代码或数据流中进行“打包”和“描述”。它们的区别主要在于侧重点和语法严格程度C 语言侧重于内存布局严谨、死板为了高性能。Python侧重于逻辑与灵活性既可以是简单的数据容器也可以包含复杂的行为。JSON侧重于传输与通用性只存数据不存逻辑语法极其严格为了跨语言。下面我通过“定义一个学生信息”这个具体场景带你直观对比这三者的写法。 核心对比示例定义“学生”假设我们要描述一个学生学号 1001叫“张三”18 岁成绩 95.5。1. C 语言严谨的“内存模具”C 语言的结构体struct是静态类型的定义时必须指定类型且末尾要加分号。它主要用于告诉计算机在内存中开辟多大的空间。// 定义结构体类型 struct Student { int id; // 学号整数类型是强制性的通过空格分割与属性名分割开。 char name[20]; // 姓名字符数组C语言处理字符串比较麻烦 int age; // 年龄整数 float score; // 成绩浮点数 }; // --- 注意这里必须加分号 int main() { // 初始化变量 struct Student stu1 {1001, ZhangSan, 18, 95.5}; // 访问成员用点号 . printf(姓名%s, stu1.name); return 0; }2. Python灵活的“数据类”Python 是动态的但为了对应结构体现代 Python (3.7) 推荐使用dataclass这样既有类型提示又自动生成初始化代码。pythonfrom dataclasses import dataclass # 定义数据类 dataclass class Student: id: int # 类型提示整数名词与类型通过分割并且不是强制性的。 name: str # 类型提示字符串 age: int # 类型提示整数 score: float # 类型提示浮点数 # 创建实例不需要写 new也不需要指定类型 stu1 Student(id1001, nameZhangSan, age18, score95.5) # 访问成员用点号 . print(f姓名{stu1.name})3. JSON通用的“数据快照”JSON 没有“定义”的概念它直接就是数据本身直接通过键值对包含了数据。因此已经直接包含了数据因此就没有必要再提前定义数据类型因此它不关心类型是 int 还是 float统称为 number也不包含任何逻辑。json{ id: 1001, name: ZhangSan, age: 18, score: 95.5 } 深度对比表语法与特性表格特性C 语言 (struct)Python (dataclass)JSON核心目的内存管理精确控制内存布局业务逻辑封装数据与行为数据传输跨语言、跨平台交换语法严格度极高需声明类型末尾分号中等支持动态类型但推荐类型提示极高键必须双引号无注释无尾逗号键/字段名不需要引号 (int id)不需要引号 (id: int)必须双引号 (id:...)包含逻辑可以包含函数可以包含任意复杂函数纯数据绝无逻辑注释支持支持//和/* */支持#不支持任何注释“xxx”已经包含信息数据类型强类型 (int,char*)动态类型 (int,str,Any)仅 6 种 (string,number,object,array,boolean,null)结尾符号};(分号)无特殊符号无特殊符号 它们是如何协作的MCP 场景之前问到的 MCP 场景中这三者其实是在互相转化的。Python 后端你写了一个 Python 函数使用 Python 的类/字典来处理业务。MCP 协议MCP 框架会自动把你的 Python 函数定义参数、类型、描述“翻译”成 JSON Schema一种特殊的 JSON。Python 的str- JSON 的stringPython 的int- JSON 的integerC 语言底层如果底层的通信库是用 C 写的比如cJSON库它会在内存中分配一块struct空间来解析这段 JSON 字符串以便 CPU 处理。 总结C 语言像是盖房子的图纸规定了哪里是卧室int哪里是厨房char[]一旦盖好很难改动但非常稳固。Python像是乐高积木你可以随意定义形状甚至可以给积木加上马达函数灵活多变。JSON像是快递包裹它不关心里面装的是图纸还是积木它只负责用最通用的格式把数据从 A 运送到 B。在写 MCP Server 时实际上是在用Python 的语法写逻辑但最终通过JSON 的格式告诉 AI 该怎么做。

更多文章