当前位置:网站首页>json到底是什么(c# json)
json到底是什么(c# json)
2022-07-31 15:06:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
如果点进来的刚巧是个高手,那……你就当是过来做个鉴定的吧。很多从事数据分析工作的伙伴都是从“最简单”的神器—Excel开始入门的,对编程语言、计算机世界的很多工具都不甚了解。要做结构化的数据,就赶紧跑去自学sql,学习sql server或是mysql数据库。要做半结构化、非结构化的数据又得去学习诸如mongo数据库的东西。 天天听对面的程序员小哥说我给你个打包个json吧,这个会用吗?阿,json是个啥?管不了这么多了,暗暗想,既然你能打个包,我就能把这包给拆了……不敢说,说出来就成了程序员鼓励师了,笑死对面的程序员欧巴了。言归正传。
1. 初识JSON
这是个json,存储的数据描述了一个人John Smith的一些个人信息,比如姓名,是否活着,年龄,地址以及电话号码等信息。其中,地址address和电话号码phoneNumbers呢,下面又包含了州、城市、街道,家庭电话、办公电话以及手机号码等信息。
如果之前只接触过存储在Excel或者sql server等结构化数据库中的结构化数据,那么第一次看到json格式的数据,一定觉得很新颖。先感性认识一下它,稍后来操作它。
这种数据组织方式,条理清晰,能更好的表示自然界中人或物等实体的属性关系。可以理解为一种树状结构,一棵有枝干,枝干上有叶子的树。
2. 操作JSON
打开Ipython,将以下代码敲进去,接下来的操作也是用此变量的值作为栗子。
你看了一眼,会说这我认识,不就是个字典吗?在Ipython中使用type()获得js变量的数据类型。
你说的没错儿,就是个dict类型。
2.1 写入json文件
2.2 读出json文件
读出的东西保存一下,看看是个什么数据类型。
可以看到我们写入json文件的是一个dict类型,读出后还是一个dict类型。这也就是json区别于csv文件的地方吧。csv文件呢,无论你写入的是什么类型的数据结构,读出的始终都是一串串字符。json文件呢,本质存储的也是字符串,区别于csv的是,通过json.load读出json,可以自动解析出数据的类型。
2.3 区分json.dump()与json.dumps()
json.dump()
使用时,需要指定需要写入的数据,以及一个写入流。如下代码实现的功能是把js的内容写入到桌面的一个test.json的文档中。执行代码后可以看到桌面上多了一个test.json文件。
json.dumps()
使用的方法比较简单,直接把需要写入的dict传递给这个函数。
3. 举一反三识别JSON
3.1 区分json与dict
会不会有时候突然犯迷糊,想json跟dict到底是什么关系,有什么区别呢?其实那是你不懂json和dict本身的概念。
json
本质是一种文件组织方式,比如你熟悉的txt, csv, doc,docx,xls,xlsx文件等等。
dict
是程序语言里定义的一种数据结构,比如列表list,比如集合set,比如字符串str,有比如数组array。
3.2 区分json与XML
XML和JSON都使用结构化方法来标记数据。
JSON 简单的语法格式和清晰的层次结构明显要比 XML 容易阅读,并且在数据交换方面,由于 JSON 所使用的字符要比 XML 少得多,可以大大得节约传输数据所占用得带宽
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128257.html原文链接:https://javaforall.cn
边栏推荐
- R语言检验样本是否符合正态性(检验样本是否来自一个正态分布总体):shapiro.test函数检验样本是否符合正态分布(normality test)
- TRACE32——基于SNOOPer的变量记录
- 工程流体力学复习
- "Listen to me, thank you" can be said in ancient poetry?Tsinghua University has developed an artifact of "Searching Sentences According to Meaning", which can search for the famous sayings you want wi
- 深入浅出边缘云 | 4. 生命周期管理
- 「秋招系列」MySQL面试核心25问(附答案)
- AVH部署实践 (一) | 在Arm虚拟硬件上部署飞桨模型
- 学习笔记12--路径-速度分解法之局部路径搜索
- Groupid(artifact id)
- 自适应控制——仿真实验二 用Narendra方案设计模型参考自适应系统
猜你喜欢

LeetCode二叉树系列——226.翻转二叉树

Getting started with UnityShader (1) - GPU and Shader

Sentinel安装与部署

NC | 斯坦福申小涛等开发数据可重复分析计算框架TidyMass
![[CUDA study notes] First acquaintance with CUDA](/img/a2/f322ebe9dc483028f68882ee2c866b.png)
[CUDA study notes] First acquaintance with CUDA

Public Key Retrieval is not allowed error solution when DBeaver connects to MySQL 8.x

OpenCV测量物体的尺寸技能 get~

Synchronized和volatile 面试简单汇总

OpenShift 4 - 定制 RHACS 安全策略,阻断生产集群使用高风险 Registry

AVH Deployment Practice (1) | Deploying the Flying Paddle Model on Arm Virtual Hardware
随机推荐
AVH Deployment Practice (1) | Deploying the Flying Paddle Model on Arm Virtual Hardware
Emmet 语法
Spark学习(3)-Spark环境搭建-Standalone
TRACE32 - SNOOPer-based variable logging
Kubernetes原理剖析与实战应用手册,太全了
[CUDA study notes] First acquaintance with CUDA
C language basic practice (nine-nine multiplication table) and printing different asterisk patterns
R language moves time series data forward or backward (custom lag or lead period): use the lag function in the dplyr package to move the time series data forward by one day (set the parameter n to a p
R语言ggplot2可视化:使用ggpubr包的ggboxplot函数可视化分组箱图、使用ggpar函数改变图形化参数(legend、修改可视化图像的图例在整图中的位置)
四象限时间管理有多好用?
R语言的画图代码及差异性分析[通俗易懂]
Jmeter常用的十大组件
微服务架构选型
Sentinel热点参数限流
MANIFEST.MF文件(PDB文件)
梅克尔工作室-第一次
LeetCode二叉树系列——226.翻转二叉树
Trigonometric identity transformation formula
谷歌CTS测试(cta测试)
RecyclerView高效使用第二节