当前位置: 首页 > news >正文

vscode json

“什么是 JSON” → “VSCode 里哪些 JSON 文件” → “如何修改与运用”

🧩 一、什么是 JSON?

JSON(JavaScript Object Notation)是一种数据表示格式,全名是:

JavaScript 对象表示法

但它与语言无关,现在广泛用于配置、数据交换、API通信等。

✅ 一句话理解:

JSON 是一种用 {} 表示对象、用 [] 表示数组、用 "key": "value" 表示键值对的配置文件格式。


🔹 基本语法结构:

{"name": "Tom","age": 25,"skills": ["C", "Python", "Linux"],"married": false,"address": {"city": "Shenzhen","zip": "518000"}
}
  • {}:包裹一个对象(类似结构体)
  • []:数组
  • "key":字符串类型的键名
  • ::键与值的分隔符
  • 值可以是:字符串、数字、布尔、对象、数组或 null
  • 不能有注释(标准 JSON 不允许 ///* */

🔍 JSON 的语法规则:

特性说明
键必须用双引号包裹 "key"单引号 'key' 会报错
最后一项后不能有逗号JSON 不支持“尾逗号”
支持嵌套对象内可以嵌套对象或数组
值类型string, number, object, array, boolean, null
类型举例说明
对象(object){ "a": 1, "b": 2 }一组键值对,用花括号包起来
数组(array)[1, 2, 3]有序数据列表
字符串(string)"hello"必须用 双引号,不能用单引号
数字(number)123, 3.14, -10不用引号
布尔值(boolean)true, false小写(和 JS/Python 一致)
空值(null)null表示“无”或“空”
错误原因正确写法
❌ 用单引号 'key'JSON 只支持双引号"key"
❌ 最后一项后多逗号结尾不能多 ,✅ 删除最后一个逗号
❌ 有注释 //JSON 不支持注释✅ 删除注释
❌ 数字带前导零0123 不合法123

⚙️ 二、VS Code 中常见的 JSON 配置文件

当你写 C/C++ 时,VSCode 其实在后台靠这些 JSON 文件来帮你:

🧱 1️⃣ c_cpp_properties.json

定义 编译器路径、标准、头文件搜索路径、宏定义 等。

路径:

.vscode/c_cpp_properties.json

示例:

{"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**","/usr/include","/usr/local/include"],"defines": ["DEBUG","VERSION=1.0"],"compilerPath": "/usr/bin/gcc","cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "gcc-x64"}],"version": 4
}

🔹 功能说明:

字段说明
includePath编译器搜索头文件的路径
defines预定义宏,相当于 #define DEBUG
compilerPath指定编译器(如 gcc)路径
cStandardC语言标准:c89/c99/c11
intelliSenseMode智能提示模式,指定编译器架构

🧱 2️⃣ tasks.json

定义 如何编译、构建 程序。
比如执行 gcc main.c -o main 这类命令。

路径:

.vscode/tasks.json

示例:

{"version": "2.0.0","tasks": [{"label": "build C program","type": "shell","command": "gcc","args": ["main.c","-o","main","-Wall","-g"],"group": {"kind": "build","isDefault": true},"problemMatcher": ["$gcc"]}]
}

🔹 功能说明:

字段说明
label任务名,会显示在命令面板
typeshell 或 process,决定用哪种执行方式
command执行的命令(比如 gcc)
args命令行参数
group任务分组,如构建(build)或测试(test)
problemMatcher错误信息解析规则(常用 $gcc

执行方式:

VSCode 中按 Ctrl+Shift+B 自动执行这个构建任务。


🧱 3️⃣ launch.json

定义 如何运行 / 调试 程序(配合 gdb)。

路径:

.vscode/launch.json

示例:

{"version": "0.2.0","configurations": [{"name": "Debug C program","type": "cppdbg","request": "launch","program": "${workspaceFolder}/main","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "gdb","miDebuggerPath": "/usr/bin/gdb","preLaunchTask": "build C program"}]
}

🔹 功能说明:

字段作用
program要运行的可执行文件路径
args程序运行时的参数
cwd工作目录
externalConsole是否弹出终端运行
MIMode调试器类型(gdb / lldb)
miDebuggerPath调试器路径
preLaunchTask调试前先执行的任务(如编译)

🧱 4️⃣ settings.json

定义编辑器的行为,比如缩进、字体、CMake配置、编译器提示等。

路径:

.vscode/settings.json

示例:

{"editor.tabSize": 4,"editor.insertSpaces": true,"files.associations": {"*.h": "c"},"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
}

🧠 三、VSCode 中 JSON 的变量与替换规则

VSCode 的 JSON 文件中可以用 ${变量} 表示动态路径:

变量名含义
${workspaceFolder}当前打开的工程根目录
${file}当前编辑的文件路径
${fileDirname}当前文件所在目录
${fileBasename}文件名(不带路径)
${fileBasenameNoExtension}文件名(不带扩展名)

例:

"command": "gcc",
"args": ["${file}","-o","${fileDirname}/${fileBasenameNoExtension}"
]

相当于执行:

gcc main.c -o ./main

🧩 四、自己修改与应用的技巧

  1. 找规律:JSON 文件其实就是把命令写成键值对形式;

  2. 不会写就用 GUI

    • Ctrl+Shift+P → 搜索 “C/C++: Edit Configurations (UI)”;
    • 它会自动生成并修改 c_cpp_properties.json
  3. 调试时先保证 tasks.json 可用
    调试器(launch.json)依赖编译任务;

  4. 改错了 JSON 文件怎么办?
    VSCode 自带语法检查,会在红色波浪线处显示错误;

  5. 善用变量替换,避免硬编码绝对路径;

  6. 注意 JSON 不能有注释
    如果想写说明,可以加 _note 字段,例如:

    "_note": "用于构建 ARM 交叉编译版本"
    

🧱 五、一个完整 VSCode + C 的配置示例

假设工程结构如下:

project/
├── main.c
└── .vscode/├── tasks.json├── launch.json├── c_cpp_properties.json

你可以这样配置:

🧩 .vscode/c_cpp_properties.json
{"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**"],"compilerPath": "/usr/bin/gcc","cStandard": "c11","intelliSenseMode": "gcc-x64"}],"version": 4
}
🧩 .vscode/tasks.json
{"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "gcc","args": ["main.c","-o","main","-g"],"group": { "kind": "build", "isDefault": true }}]
}
🧩 .vscode/launch.json
{"version": "0.2.0","configurations": [{"name": "Debug","type": "cppdbg","request": "launch","program": "${workspaceFolder}/main","args": [],"cwd": "${workspaceFolder}","stopAtEntry": false,"externalConsole": true,"MIMode": "gdb","miDebuggerPath": "/usr/bin/gdb","preLaunchTask": "build"}]
}

现在:

  • Ctrl+Shift+B → 编译;
  • F5 → 调试;
  • 你就完全掌握了从源码到调试的 VSCode 自动化流程。

✅ 总结一张图:

文件名作用关键字段
c_cpp_properties.json配置 IntelliSense、头文件、宏、标准includePath, defines
tasks.json编译任务定义command, args
launch.json运行/调试配置program, preLaunchTask
settings.json编辑器行为editor., C_Cpp.

http://www.dtcms.com/a/520550.html

相关文章:

  • 奥威BI:AI数据分析重塑客户体验的实战指南
  • 公司网站开发费摊销大连建设安全网站
  • 东莞教育网站建设浙江建设厅网站查询
  • 深圳公司网站设计企业虹口建设机械网站
  • Rust 所有权与借用机制深度剖析:原理、常见陷阱与实战优化
  • golang学习笔记:标准库encoding
  • Go语言实战教学:从一个混合定时任务调度器(Crontab)深入理解Go的并发、接口与工程哲学
  • 如何做原创小说网站广州商城网站制作网站
  • 让线程按指定顺序运行
  • 定制手机网站开发显示网站翻页代码
  • CoAlbum:多级缓存与性能对比
  • 【算法专题训练】27、树的层序遍历
  • 网站导入wordpress基层建设是哪个网站的
  • 第6章—手动移植创建STM32工程
  • Android Bluetooth 蓝牙通信
  • 简述一般网站开发方式广州三合一企业网站哪家好
  • 网站建设邀标函专业的外贸建站公司
  • C++ STL(标准模板库)深度解析:从基础到实践
  • 压缩与缓存调优实战指南:从0到1根治性能瓶颈(二)
  • Linux小课堂: SSH 配置文件详解之全局与局部 Config 文件的语义梳理与技术深化
  • 6-2〔O҉S҉C҉P҉ ◈ 研记〕❘ 客户端攻击▸利用WORD宏让客户端执行命令
  • 网站页面设计报价xampp做网站设置
  • 制作 网站 盈利怎么看网站到期时间
  • Qt6.10 | Qt Bluetooth 蓝牙
  • 网站自动化开发无极官方网站下载
  • 基于 docker compose 进行部署PandaWiki
  • 哪里建设网站设计服务
  • Python - 100天从新手到大师:第五十八天 Python中的并发编程(1-3)
  • C语言-动态内存分配
  • 多个PDF文档如何批量删除页眉处的多余信息