Json数据格式解析,难点,易错点分析
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 以文本形式存在,既然谈到格式,说明这玩意就是一个约定。比如服务器(Java实现)与前端(可能是网页可能是PC端)进行数据交互,很多都用Json。
JSON建构于两种结构:
- “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它(值)被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
- 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
根据上面两个定义举例说明这两种JSON包:
{"aa": 1,"bb": 2.2,"cc": "abc","dc": {"ee": 33,"ff": 44.44},"gg": [5, 6.6, "I love you"]
}
[1,22.2,{"aa": 11,"bb": 22.2},[55, 77.7, {"dd": 2}]
]
要不然是一个object(以“{”开头,以“}”结尾),要不然是一个array(以“[”开头,以“]”结尾)。
Json中文网:http://www.json.org/json-zh.html。这里主要对这个网站里几张图做一下分析。
JSON具有以下这些形式:
值(value)可以是双引号括起来的字符串(string)、数值(number)、true
、false
、 null
、对象(object)或者数组(array)。这些结构可以嵌套。
这里除了object和value之外,其余的都是简单类型,很好理解。而object和array会有嵌套操作。
对象(object)是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
我认为这里的重点是,“无序的“‘名称/值’对”集合”,你不能这里面加一个value,也不能加一个object(即object嵌套object),亦不能是array,反正只能是 “名称/值”对。举个例子:
{1,“name”:“Jack”,“girfriend”:null,{"height":1.81}[1,"hello",{"Kobe":"mvp"}]"Thunder":{"威少":"劲爆"},"Warrior”:[{"Curry":"超远三方","杜兰特"}]
}
这里第一个,第四个和第五个元素会导致错误,因为object里面只能是键值对。第六,七个是可以的,因为它们是‘名称/值’对,只不过,它们的值分别是object和array(这里就可以产生嵌套,并不是直接嵌套,而是把object和array放到‘名称/值’ 的 ‘值’里)。
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
object是无序的“名称/值”对集合,array是value的有序集合,这应该是整个Json最难点。举个例子:
[ 1,“瞎写的”,null,"myname":"李小乾”,{"name":"Jack","age":13},[{"name":"Bob"},{"father":"James"}]
]
这里的第四个元素是错误的,因为它不是value的一种啊。记住,“名称/值”对不是value。
第五个元素是一个object,array可以嵌套object。第六个元素是一个array,array可以嵌套自己。
string与number格式,这里不讲。
Json数据格式解析,难点,易错点分析相关推荐
- 10以内逆向运算题_【七年级上】数学 有理数运算典型易错题分析(下)
写在前面 再过几日,各版本教材有理数的运算内容即将结束,加减乘除乘方的运算法则全面铺开,有些题开始变得非常容易错,究其原因,主要问题还是出在运算顺序错,未能确定符号,乱用运算律等方面,因此,本讲针对乘 ...
- JSON 数据格式解析(转)
JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.本文将快速讲解 JSON 格式,并通过代码示例演示如 ...
- C语言一级指针(char *)易错模型分析
C语言一级指针char *易错模型分析 char *(字符串)做函数参数出错模型分析 越界 不断修改指针变量的值 你向外面传递什么 重复的错误何时休 char *(字符串)做函数参数出错模型分析 建立 ...
- ssh 配置:在 Linux 中 ssh 配置无密码登陆完整步骤以及易错点分析
文章目录 前言 一.什么是 SSH? 二.ssh 配置无密码登陆原理 三.Linux 系统上生成 SSH 密钥和公钥 四.登录验证 总结 前言 对于 Hadoop 的伪分布式和全分布式而言,Hadoo ...
- 大数据基础系列 4:伪分布式 Hadoop 在 Ubuntu 上的安装流程完整步骤及易错点分析
文章目录 前言 一.创建 Ubuntu 用户 二.安装 Java 2.1.查看本地 Java 版本 2.2.验证 Java 在本地的配置情况 三.安装 ssh 服务 3.1.安装 openssh-se ...
- 计算机考研分析题,2020计算机考研,易错题分析与常考点总结
2020计算机考研易错题分析与常考点总结,今天就以电子科技大学的计算机为例讲解数据结构的知识点. 1.栈和队列 以"存储位置相邻"来表示线性表中元素间的逻辑关系: 若已知表中首元素 ...
- 小升初数学计算机考试题,【2020年小升初数学常考题型及易错题分析】- 环球网校...
[摘要]随着春天的到来,"小升初"这个关键词可能是广大家长朋友们最担心的一个问题,环球网校小编为广大家长朋友们整理发布了<2020年小升初数学常考题型及易错题分析>希望 ...
- C语言 JSON数据格式解析
C语言 JSON数据格式解析 一.如何用c语言编写与解析json数据格式,这篇主要是使用一个第三方的json库,本人已经上传至csdn,下载链接在下方. 二.json库代码文件下载地址(json.ra ...
- CAIE ALevel物理(9702)易错题分析
CAIE ALevel物理(9702)易错题分析 考点:uncertainty和percentage uncertainty uncertainty=half range percentage unc ...
- JSON.parse解析特殊字符报错解决方案
2019独角兽企业重金招聘Python工程师标准>>> 具体案例: 页面点击"下一任务" 会去请求后台,这里出现的问题是有虚拟任务的时候.然后会返回一个map,也 ...
最新文章
- 真 · 圆桌!WAIC论坛上演自动驾驶专家激辩,直面技术路径之争
- C#.NET跨线程控件的相关操作
- 认清楚服务器的真正身份--深入ARP工作原理
- 【AutoML】强化学习如何用于模型蒸馏?
- java源代码实例倒计时_Java倒计时三种实现方式代码实例
- OpenGL:关于获取渲染结果的深度信息的问题(二)
- vue2.0和3.0区别_usb3.0和2.0有什么区别 usb3.0和2.0哪个好【详解】
- jQuery Mobile中图标icon样式大全ui-icon-*
- 《Head First设计模式》 读书笔记05 工厂模式(二)
- 入职体检的体检项目有哪些呢?
- 大众点评社区运营攻略
- docker内存及cpu限制
- python全栈开发第一天(HTML认识,HTML常用标签)
- Cobbler 批量安装操作系统 (基于Centos7.x )
- android安装到内存卡,android手机怎么把软件安装到内存卡里
- pt-table-checksum 使用实践
- ssr pac_全新回馈丨购金币三日礼,获取主线SSR羁绊
- 腾讯优测-优社区干货精选 | android开发在路上:少去踩坑,多走捷径(上)
- 用友OA漏洞学习——test.jsp SQL注入漏洞
- kafka完美解决报错:Error while executing topic command:Replication factor:3 larger than available brokers:0
热门文章
- C - Write the program expr which evaluates a reverse Polish expression from the command line
- 华为交换机、路由器流量统计
- [Spark调优]--TaskSetManager的有效Locality Levels
- Mybatis复杂查询(详细举例)
- python如何编写温度转换_Python温度转换实例分析
- Android消息机制和应用
- 网页加载速度优化分析
- 数26个大写字母里带圈的字母个数
- 时间管理技巧(清理一波文件 感觉这个还是有用的 )
- 1021.Deepest Root