JSON概念性知识

作者: 觉子先生 | 来源:发表于2015-03-05 12:34 被阅读168次

JSON:JavaScript 对象表示法(JavaScript Object Notation

JSON 是存储和交换文本信息的语法,类似 XML。其采用键值对的方式来组织,不仅易于阅读和编写,且易于机器解析和生成。

JSON 是独立于语言的,也就是说不管什么语言,都可以解析json,只需要按照其规则来就行。

JSON & XML相比:

json的长度和xml格式比起来小很多,减少打开页面的带宽
json读写的速度更快
json可以使用 JavaScript内建的方法直接进行解析并转换称JavaScript对象,非常方便

JSON的语法规则:

JSON 数据的书写格式:名称/值对。

名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样需添加双引号),中间用冒号隔开。
比如:"name":"杨康"

JSON的值可以是下面的这些类型:

数字(整数或浮点数),比如123,1.23
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null

下面给出一个例子:

{
"staff":[
    {"name":"唐三","age":70},
    {"name":"孙康","age":35},
    {"name":"林重","age":21}
]
}

JSON解析方法:

eval和JSON.parse

在代码中使用eval是很危险的!特别是在执行第三方的JSON数据(其中可能包含恶意代码)时,尽可能使用JSON.parse()方法解析字符串本身,该方法还可以捕捉JSON中的语法错误。

在浏览器工具-Console中尝试:

测试eval:

var jsondata= '{"staff":[{"name":"唐三","age":70},{"name":"孙康","age":35},{"name":"林重","age":21}]}';
var jsonobj = eval('('+jsondata+')');
alert("姓名:"+ jsonobj.staff[0].name +"; 年龄:"+ jsonobj.staff[0].age);

测试json.parse:

var jsondata= '{"staff":[{"name":"唐三","age":70},{"name":"孙康","age":35},{"name":"林重","age":21}]}';
var jsonobj = JSON.parse(jsondata);
alert("姓名:"+ jsonobj.staff[0].name +"; 年龄:"+ jsonobj.staff[0].age);

测试eval在解析的同时还会执行字符串中的方法:

下面代码中会先弹出数字“123”,然后再弹出解析出来的姓名和年龄。

var jsondata= '{"staff":[{"name":"唐三","age":alert(123)},{"name":"孙康","age":35},{"name":"林重","age":21}]}';
var jsonobj = eval('('+jsondata+')');
alert("姓名:"+ jsonobj.staff[0].name +"; 年龄:"+ jsonobj.staff[0].age);

测试JSON.parse在解析时候发现其中有其他方法的时候会直接显示语法错误并不继续执行后续方法:

var jsondata= '{"staff":[{"name":"唐三","age":alert(123)},{"name":"孙康","age":35},{"name":"林重","age":21}]}';
var jsonobj = JSON.parse(jsondata);
alert("姓名:"+ jsonobj.staff[0].name +"; 年龄:"+ jsonobj.staff[0].age);

JSON在线校验工具:http://jsonlint.com

将前面出现的staff字符串粘贴到其中的框框中,点击Validate按钮即可校验。

相关文章

  • JSON概念性知识

    JSON:JavaScript 对象表示法(JavaScript Object Notation) JSON 是存...

  • 彭晋辉:概念性知识与其他知识的关联

    听过昨天的学习力学员分享后,对“概念性知识”了解更深了,发现事实性知识、概念性知识除概念界定外,主要还要按照吸收知...

  • 《语文教学之学理》读书笔记六

    过程技能与“大概念” “布鲁姆教学目标分类学”将知识分为事实性知识、概念性知识、程序性知识、元认知知识。作者...

  • 如何区分事实性知识和概念性知识

    如何区分事实性知识和概念性知识 我的理解: 根据布卢姆的教育目标分类学理论,知识可以分为事实性知识、概念性知识、程...

  • 如何建立认知体系

    一、布鲁姆认知分类法 1.事实性知识 单点知识,各个概念的描述和细节 2.概念性知识 框架性知识,原理、抽象总结,...

  • 大脑中的专业知识像极了“城堡”

    知识分为四类,事实性知识、概念性知识、程序性知识和元认知知识。 事实性知识的含义是事实性知识又叫事实,...

  • 备课最主要备的是什么?

    一节课,内容很多,备课中哪些是最重要,最要紧的? 1.事实性和概念性知识哪个最重要?关注事实性知识、概念性知识、程...

  • 概念性知识理解方法——理解三问

    概念性知识包括:名称概念、理论、模型(方法论)、原理。 理解三问,目的是加深对概念性知识的理解,主要通过三类问题来...

  • 隐性知识的反思

    隐性知识的反思 我们很多人都知道显性知识和隐性知识的概念,这个概念原本是迈克尔·波兰尼提出来的,他给我们的定义是;...

  • 读书/语文的维度 【啃读】

    一、语文的维度: 内容知识维度主要涉及事实性知识和概念性知识,过程技能维度主要设计程序性知识和策略性知识。不同的知...

网友评论

    本文标题:JSON概念性知识

    本文链接:https://www.haomeiwen.com/subject/rwwmxttx.html