【大一C语言项目】Cjson的认识与实现(一)
【大一C语言项目】Cjson的认识与实现(一)
一、初识json
参考网站
菜鸟教程:JSON
JSON介绍
JSON在线解析
JSON是什么
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
JSON 是轻量级的文本数据交换格式
JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
JSON 具有自我描述性,更易理解
关键词提取:独立,数据对象,易理解,文本数据交换格式,轻量级,JS对象表示法
二、JSON语法
下面程序片段源自菜鸟教程:JSON,自己进行修改调试
JSON的基础语法
数据书写格式
key:value
可以理解为key=value
value形式
数字(整数或浮点数)
{ "age":19 }
字符串(在双引号中)
"name" : "zsl"
逻辑值(true 或 false)
{ "is_student":true }
数组(在中括号中),可以包含多个对象
{"sites": [{ "name":"鱼竿钓鱼干" , "url":"https://blog.csdn.net/qq_39354847" }, { "name":"NEFU" , "url":"https://www.nefu.edu.cn/" }, ]
}
对象(在大括号中)
{ "name":"鱼竿钓鱼干" , "url":"https://blog.csdn.net/qq_39354847" }
null
{ "json":null }
更多的语法细节
对象
在{}中,可以包含多个键/值对,并用","来分隔
{ "name":"鱼竿钓鱼干" , "url":"https://blog.csdn.net/qq_39354847" }
访问值
可以用"."或者[]来访问对象里的值,有点像C语言里的结构体
var myObj, x;
myObj = { "name":"zsl", "age":19, "site":null };
x = myObj.name;var myObj, x;
myObj = { "name":"zsl", "age":19, "site":null };
x = myObj["age"];
循环对象
var myObj = { "name":"zsl", "age":19, "site":null };
for (x in myObj) {document.getElementById("demo").innerHTML += x + "<br>";/*好像是html或者js用来输出的*/
}
循环对象的值
通过[]来访问值,但是这里使用点号好像不可以?(不确定对不对)
var myObj = { "name":"zsl", "age":19, "site":null };
for (x in myObj) {document.getElementById("demo").innerHTML += myObj[x] + "<br>";/*好像是html或者js用来输出的*/
}
嵌套 JSON 对象
myObj = {"name":"zsl","age":19,"information": {"blog":"https://blog.csdn.net/qq_39354847","class":"2020-06","email":"851892190@qq.com"}
}
嵌套 JSON 对象的访问
x=myObj.information.blog
修改值
点号或者[]都可以
x=myObj.information.blog = "https://blog.csdn.net/qq_39354847/article/details/113782561";
删除对象属性
delete myObj.information.blog;
数组
数组和对象其实差不多,所以不弄很细了
数组:使用[];使用数组下标[]索引
对象:使用{};点号和[]索引
对象中嵌套数组,数组再嵌套数组
myObj = {"name":"网站","num":3,"sites": [{ "name":"Google", "info":[ "Android", "Google 搜索", "Google 翻译" ] },{ "name":"Runoob", "info":[ "菜鸟教程", "菜鸟工具", "菜鸟微信" ] },{ "name":"Taobao", "info":[ "淘宝", "网购" ] }]
}
利用循环输出上面的信息
for (i in myObj.sites) {x += "<h1>" + myObj.sites[i].name + "</h1>";for (j in myObj.sites[i].info) {x += myObj.sites[i].info[j] + "<br>";}
}
修改值与删除属性
myObj.sites[1] = "Github";
delete myObj.sites[1];
Tip:
delete 运算符并不是彻底删除元素,而是删除它的值,但仍会保留空间。
运算符 delete 只是将该值置为 undefined,而不会影响数组长度
三、项目目标
暂定目标
根据网上资料进行Cjson的编写,并实现对JSON语法的解析。
对JSON有初步了解和掌握,为未来相关课程学习做铺垫
熟悉网上已有Cjson项目,汲取其优点与编程思想
预期效果
在本地实现类似这个网站的JSON解析功能JSON在线解析
【大一C语言项目】Cjson的认识与实现(一)相关推荐
- JSON的C语言编解码器——cJSON和json-c
http://blog.csdn.net/wadefelix/article/details/6965327 JSON是一种比XML更轻量级的数据交换格式,关于JSON的基础知识,参考 JSON ht ...
- 视频教程-C语言项目开发系列视频课程-C/C++
C语言项目开发系列视频课程 从事编程数年,曾留学日本深造,擅长C++.后端.尤其是逆向 执教多年,顺应互联网的发展,从线下转为线上 用激情点燃代码,帮助大家实现编程梦想 杨波 ¥500.00 立即订阅 ...
- 大一C语言挣扎之路1(电子计算机概述和Visual Studio )
大一C语言挣扎之路1(电子计算机概述和Visual Studio ) C语言 一 电子计算机概述 1. 计算机的诞生 2. 冯·诺依曼结构 功能 组成部件 计算机工作流程 3. 计算机的发展历史 4. ...
- 大一c语言大作业课题大全,昆明理工大学大一C语言大作业题目.doc
昆明理工大学大一C语言大作业题目 综合性实践排序求平均值(包括将数拆散求最大最小值).函数ReadDat()随机产生100个存放到数组aa中00个jsSort()函数的功能是:进行降序排列.最后调用函 ...
- 深入体验c语言项目开发 光盘,深入体验C语言项目开发
c语言是当今使用最为频繁的编程语言之一,一直在开发领域占据重要的地位.<深入体验C语言项目开发>通过10个综合实例的实现过程,详细讲解了c语言在实践项目中的综合运用过程.这些项目从作者的学 ...
- 上海大学c语言程序设计,【基础强化】2020-2021学年秋季学期程序设计C语言项目顺利开展...
2020年10月19日下午12:10分,由上海大学社区学院课外培养中心主办的程序设计C语言项目在D415机房开展.本课程由邹启明老师担任主讲,为对编程感兴趣的同学提供了课外的学习机会与平台. 邹老师以 ...
- goland/go语言项目--本地包的导入(将项目添加至GOPATH中)(基于macOS)
goland/go语言项目–本地包的导入(将项目添加至GOPATH中)(macOS) 1. 创建项目 首先,在桌面上创建一个文件夹G0Project,从而创建项目. //利用go mod进行初始化项目 ...
- [开源] C语言项目实战 - 虚拟鼠标 - VirtualMouse
C语言项目实战 - 虚拟鼠标 - VirtualMouse 目录 关于软件 软件介绍 使用帮助 项目介绍 源码及软件下载 知识点扫描 热键的使用 鼠标事件的模拟 字体的选用 开机自启动的设置 为软件添 ...
- 如何使用visual studio 2017创建C语言项目
使用visual studio 2017创建一个C语言项目,步骤如下: (1)打开Visual Studio 2017环境后出现欢迎界面,如图1所示. 图1 Visual Studio 2017欢迎 ...
最新文章
- 最新剑桥《AI全景报告》出炉:中国发表机器学习学术研究超过美国
- shiroConfig配置中要注意的事项
- sql server 2005 优化方法
- Jenkins插件之Deploy
- JS 数据处理技巧及小算法汇总(转载)
- 一篇文章搞定面试中的二叉树
- spring创建webservice项目
- 【总结】 Lucas定理
- Python MySQLdb的execute和executemany的使用
- 94. Binary Tree Inorder Traversal
- Okhttp之RouteSelector简单解析
- 新员工入职表_招人难,留人难!超市如何留住新员工
- 工业可视化三维建模数据3d可视化平台
- mybatis-plus中Constants.WRAPPER的导入包
- 旅行青蛙(旅かえる)的最全攻略(不懂日语的可以看看)
- 【MM VS价】移动平均价V标准价格S(一)
- dw中html文档命名标准,dw中的css是什么意思?
- Web Components使用(一)
- latex backmatter 是什么意思
- python基于模糊推理的智能家居安防系统设计
热门文章
- vue数组更新不渲染页面
- C语言中清空数组的方法(VS2013)
- “蓝桥杯”练习系统 BASIC-20 VIP试题 数的读法 | 数字转换拼音
- 布尔类型(boolean)在oracle存储过程中支持情况
- 无知和冷漠其实比蓄意更严重
- Dubbo 最佳实践
- 一篇文档掌握Jdk8中Javascript引擎Nashorn的使用方法
- 用html语句超链接锚点使用,HTML 锚点超链接
- [QLU Regular Contest 003] G.Youmu with greedy money problem //dp+滚动数组
- 不是每一朵花都有提前开放的理由