`
java10000
  • 浏览: 24259 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

理解JSON

阅读更多

如果你跟我一样(我担心你就是),那么,到目前为止,这应该是你对JSON的经验:

  1. 两个月前你从没听说过JSON
  2. 一个月前你听说了这个词但没有留意
  3. 一周前你发现这个词被提到多次,开始想,没错 … 又有一些垃圾东西要学了
  4. 今天你被心灵深处的一个闹铃闹醒,心想:这该死的json究竟是个什么东西?为什么突然间到处都是它了!

于是晚上我乘坐了一辆慢腾腾的公交回到家(周五通常都是很慢),然后给自己找了一大堆关于JSON资料。所以我可以文雅的带你进入JSON的大门。

这就开始了 …

这几个字母是什么意思?

JavaScript Object Notation.

[一个滑稽的名字。它应该被称作Lightweight Ecmascript Object Notation, 或简称 'LEON'。 ;-) ]

它是个什么东西?

JSON是一种传递对象的语法,对象可以是name/value对,数组和其他对象。

下面是一小段JSON代码:

{"skillz": {
	"web":[
		{"name": "html",
		 "years": "5"
		},
		{"name": "css",
		 "years": "3"
		}],
	"database":[
		{"name": "sql",
		 "years": "7"
		}]
}}

你看懂了吧?那么当你再看到它时就知道它是JSON了。主要部分:

花括弧,方括弧,冒号和逗号

  1. 花括弧表示一个“容器”
  2. 方括号装载数组
  3. 名称和值用冒号隔开
  4. 数组元素通过逗号隔开

把它想成“得了厌食症的XML”

(如果你跟我一样老,可以把它想成有层次关系的’.INI’文件)

(如果你是个自以为是的Lisp小丑,可以把它想成”S-expressions”,自以为是吧)

JSON很像XML,因为:

  1. 他们都“自我描述”,这意味着值都是可列举的,是“人类可读”的
  2. 都是有层级的。(例如你可以在值里再存放值)
  3. 都能被多种的编程语言解析和使用
  4. 都能使用AJAX方法来传递(例如httpWebRequest)

JSON跟XML不一样,因为:

  1. XML里在元素的开始和结尾处有尖括号和标签名:JSON使用花括号,而且只在数据的开始和结束时使用。
  2. JSON更简练,毫无疑问更适合人类书写,也许也能让我们更快速的阅读。
  3. JSON可以在JavaScript里简单的传递到eval()方法里使用
  4. JSON里有数组{每个元素没有自己的名称}
  5. 在XML里你可以对一个元素使用任意想要的名称,在JSON里你不能使用Javascript里的保留字

可是为什么?它有什么好的?

当你写ajax之类的东西时,如果你使用JSON,你就勉去了手工拼写XML。更迅速。

同样,当你写ajax之类的东西时,怎样最简单?XML方式还是JSON方式:

XML方式:

  1. 取回一个XML文件
  2. 循环它,从中提取值
  3. 处理这些值,等

对比

JSON方式:

  1. 取回JSON字符串。
  2. ‘eval’ JSON数据

它是面向对象的吗?

No,严格的说,不是。

就像是VB6里的面向对象一样。它提供了很好的封装机制,你可以使用它把数据和方法分离出来,但它不提供任何的继承,多型,接口,或其它类似的面向对象的东西

很显然,它是使javascript变得更易于维护,分析和复用的方向上前进了一步。

Thomas Frank写了一个灵巧的javascript库,叫做classyJSON,它在JSON代码上增加了继承和定义范围等特征。

它只是用在客户端吗?

是,也不是。在服务器端你可以容易的把对象序列化成JSON或反之。对于.net,程序员可以使用类似Json.net的类库使这些操作自动化(我估计是使用反射机制),或你使用自己的程序来做这些事,可能会更快些。

3分钟将近结束….

就我所知,JSON是由一个叫做Douglas Crockford的家伙发明的。如果你喜欢的话,可以看一下他的网站,他非常的有趣。

这就是全部。

我在几分钟的时间里只能整理出这些东西——所有我说的有些东西可能完全是错的。如果是这样,请留言告诉我,告诉我我有多傻。我会很高兴的纠正任何一个错误。祝你好运!

(边注:如果你把 { 和 } 替换成”<” 和 “/>”,把”:” 换成 “/”… 你会得到一个非常像gaXml的东西。有趣的世界。

(边注2:Jason 和 Ajax 都是希腊神话中的英雄。预告:另外一些即将出现的技术垃圾包括:Heracles, Perseus, Deucalion, Theseus
and Bellerophon。)

分享到:
评论

相关推荐

    RACE英语阅读理解json格式

    总结来说,RACE英语阅读理解JSON数据集为NLP领域的研究提供了一个丰富的资源,它利用JSON格式优化了数据结构,便于Python等编程语言进行处理。通过理解并有效地利用这些数据,我们可以构建更加智能的阅读理解系统,...

    深入理解 JSON.pdf

    深入理解 JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于文本,用于交换数据。它是一种数据格式,规定了数据如何表示,例如,姓名、身高、体重等信息可以用不同的格式表示,如"name='二...

    JSON 数据格式化 排版 UI图像示意 便于阅读和理解JSON数据结构 和 数据验证

    在描述的"JSON数据格式化排版UI图像示意"中,我们谈论的是如何使JSON数据更加易读和理解。这通常涉及到以下几个方面: 1. **格式化**:JSON数据默认是以紧凑的形式存在,一行内可能包含多个键值对,这对于人类阅读...

    10.16 理解JSON|正则表达式与JSON|Python3.8入门 & 进阶 & 原生爬虫实战完全解读

    10.16_理解JSON|正则表达式与JSON|Python3.8入门_&_进阶_&_原生爬虫实战完全解读

    深入理解 JSON.docx

    JSON,全称JavaScript ...理解和掌握JSON的序列化、反序列化以及相关的处理函数,对于任何从事Web开发的程序员来说都是非常重要的。通过实践和深入学习,可以更好地运用JSON来优化数据交互,提高程序的效率和可维护性。

    jsonview json 高亮显示插件

    "jsonview" 是一个针对浏览器的插件,专门设计用来帮助开发者更好地查看和理解JSON格式的数据。在没有jsonview插件的情况下,浏览器会将JSON数据以纯文本的形式显示,这对于大量和复杂的JSON数据来说,阅读起来非常...

    Linux JSON 命令总结.zip_json linux_shell解析json

    在Linux环境中,处理JSON数据是常见的任务,尤其是在服务器管理和自动化脚本中。...理解JSON格式和Shell脚本语法是成功解析和操作JSON数据的关键。通过不断实践,你可以更加熟练地应对各种JSON处理挑战。

    JsonView查看JSON利器

    JsonView是一款优秀的浏览器扩展,专门设计用来帮助开发者更方便地查看和理解JSON结构化数据。 JsonView作为一个JSON利器,它的主要特点和功能包括: 1. **层次分明的视图**:JsonView将JSON数据以树形结构展示,...

    JSON Schema 规范(中文版).pdf

    在学习 JSON Schema 时,需要理解什么是模式, JSON Schema 的基本类型,如何使用 JSON Schema 等。 什么是模式? 模式(Schema)可以理解为一种模式或者规则,用于定义 JSON 数据结构的结构和约束。 JSON Schema ...

    JSON文件查看器,用于json文件的查看

    这有助于开发者和非开发者快速理解JSON文件中的数据结构和内容,而无需通过代码解析或使用复杂的调试工具。 描述中提到的“用起来很方便”意味着该查看器可能具有以下特点: 1. 快速打开:能够快速加载大体积的JSON...

    Json View json格式化工具

    JsonView是一款专为开发者设计的JSON格式化工具,能够帮助用户更直观、便捷地查看和理解JSON数据。 JsonView的主要功能包括: 1. **格式化显示**:JsonView可以将杂乱无章的原始JSON数据转换为结构清晰、层次分明...

    json-c-master_c语言项目_json-c-master_JSONC语言_json-c_

    2. **JSON数据结构**:理解JSON的基本数据类型,如对象(键值对)、数组、字符串、数字、布尔值和null。你需要知道如何表示和解析这些结构。 3. **json-c库**:学习`json-c`库提供的API,包括解析JSON字符串到C数据...

    JsonView Json视图工具

    JsonView是一款针对Android平台设计的高效Json解析和可视化工具,它为开发者提供了一种直观的方式来查看和理解Json数据。在Android应用开发过程中,处理Json数据是常见的任务,而JsonView通过其友好的界面和强大的...

    json格式化工具win版

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序...对于Windows用户来说,“json格式化工具win版”,如HiJson,是一个实用的选择,能帮助他们更好地管理和理解JSON数据。

    【JsonView(可视化工具)】

    对于非技术背景的人来说,这个工具也能提供一个直观的方式来浏览和理解JSON数据,而无需学习编程语言的细节。 总的来说,JsonView是JSON数据处理的得力助手,通过提供清晰的视图和强大的功能,极大地简化了JSON数据...

    JSON解析 创建JSON

    理解JSON的基本结构,学会在不同语言中创建和解析JSON,以及了解相关扩展如JSON Schema、JSONP和JSON-LD,都将对提升你的Web开发能力大有裨益。在实际项目中,熟练掌握这些知识点能帮助你更高效地处理数据交换,实现...

    json复杂数据解析demo

    首先,我们需要理解JSON的基本结构。JSON数据由键值对组成,键用引号包围,后面跟着冒号,值可以是字符串、数字、布尔值、数组、对象或者null。数组用方括号[]包围,对象用大括号{}包围,多个键值对之间用逗号分隔。...

    JsonView json 查看器

    在日常的Web开发、API接口调试或者数据分析过程中,JsonView的使用能够帮助我们更直观地理解Json结构,提高工作效率。 Json(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

    Json View json查看工具

    同时,对于初学者来说,JsonView也是学习JSON格式的好帮手,通过它的可视化展示,可以更直观地理解JSON数据结构。 总结起来,JsonView作为一款高效的JSON查看工具,凭借其色彩鲜明的显示、便捷的操作以及强大的功能...

    json工具、json查看

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据...JsonView等查看器提供了直观的界面,帮助开发者高效地处理和理解JSON数据,是Web开发不可或缺的辅助工具。

Global site tag (gtag.js) - Google Analytics