对JavaScript解析JSON格式数据的理解
一、JSON与JavaScript对象的关系
1,JSON的由来:
在21世纪初,Douglas Crockford(Web开发领域最知名的技术权威之一,ECMA JavaScript2.0标准化委员会委员,被JavaScript之父Brendan Eich称为JavaScript的大宗师(Yoda),曾任Yahoo!资深JavaScript架构师,现任PayPal高级JavaScript架构师)试图寻找一种更加简便的数据交换格式,能够在服务器之间交换数据,当时通用的数据交换语言是XML,但是Douglas Crockford认为XML的生成与解析都过于麻烦,所以他提出了一种更加简化的格式,就是我们现在使用的JSON。所以说,JSON就是一种数据进行交换需要遵守的格式,是存储和交换文本信息的语法,但它并不是Javascript独有的数据格式,其它很多语言都可以对JSON进行解析和序列化。
2,与JavaScript的渊源:
          JavaScript对象的创建有两种方式,分别为字面量形式和构造函数形式。采用JSON格式描述的数据恰又为JavaScript以字面量形式声明的对象的结构一样(具体的可以搜索JSON的由来),因此,可以很方便的使用JavaScript的语法来处理这种格式的数据。
例:
 var jsonObj = {a:1,b:2};  (与 var jsonObj = {'a':1,'b':2};一样);

上述的jsonObj对象就是采用符合JSON规范的一个JavaScript对象,但并不是所有采用字面量形式声明的对象都是符合JSON格式的,下面示例的这个就不符合:

为什么说“不是所有采用字面量形式声明的对象都是符合JSON格式的”? 因为JSON是为了数据的高效简便传输而生的,因此,他描述的是进行传输的数据需要遵守的格式,而JavaScript的对象不仅描述数据的属性,而且还需要有能力描述数据的行为,这两者的定位与出现的初衷都是不一样的。
      采用JSON数据结构传输的数据可以很容易的解析为有用的JavaScript对象,ECMAScript5对解析JSON的行为进行了规范,定义了全局对象JSON(此为全局对象的内部对象),JSON对象有两个方法:stringify()和parse()。这两个方法分别用于把JavaScript对象序列化为JSON字符串和把符合JSON规则的字符串解析为原生JavaScript对象。

二、JSON的基本语法:
① 并列的数据之间用逗号( , )分隔
② 映射用冒号( : )表示
③ 映射的集合用大括号( {} )表示
④ 并列数据的集合用方括号( [] )表示
例:
    a, {'a':1,'b':2}   b,  [{'c':10,'d':20}]
三、stringify()和parse()的用法示例
1,JSON.parse() 用于将一个包含JSON符号的字符串中解析为 JavaScript对象,如图:
2,JSON.stringify()用于将一个JavaScript对象转换成字符串,如图:
3,一个常见错误的分析(Uncaught SyntaxError: Unexpected token  with JSON.parse),如图:
示例中尝试对一个JavaScript对象进行解析,出现了语法错误。原因在于,当parse传入的参数不是string类型时,会尝试将参数转换为string类型,如果能够转换成正确的JSON字符串,则会解析成相应的JavaScript对象;此例中,会尝试将参数obj转化为string类型,调用默认的toString()方法(基于原型链继承而来的方法),而此方法默认返回"[object Object]"字符串,这不是一个符合JSON格式的字符串,因此会报如图所示错误。

对JavaScript解析JSON格式数据的理解相关推荐

  1. php使用 js格式解析,JavaScript解析JSON格式数据的方法示例

    本文实例讲述了JavaScript解析JSON格式数据的方法.分享给大家供大家参考,具体如下: 1.使用JavaScript提供的eval()函数function JsonText1() { var ...

  2. JavaScript解析json格式数据简单示例

    JavaScript解析json格式数据简单示例 本文通过for循环来获取json结点数据,需要的朋友可以参考以下这串json数据用来存储预加载的图片路径: 代码如下: var imgData = [ ...

  3. 【Python使用】Python解析JSON数据的基本方法/用MATLAB解析json格式数据

    一 JSON数据格式介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON建构于两种结构:json是Javascript中的对象和数组中的对象, ...

  4. python中json模块_Python使用内置json模块解析json格式数据的方法

    本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...

  5. C++解析JSON格式数据

    因为项目原因需要使用VC6.0解析JSON格式数据,这里首先介绍VC6.0编译JSON解析库的步骤. 首先你必须在http://sourceforge.net/projects/jsoncpp/fil ...

  6. javascript解析json格式的字符串,拼接后显示到表格中

    知识点 解析json格式的字符串 拼接的HTML设置到tbody当中 加载json格式的对象 结果演示 html代码 <!DOCTYPE html> <html><hea ...

  7. Java-json系列(一):用GSON解析Json格式数据

    GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...

  8. Java解析JSON格式数据

    Java解析JSON格式的数据主要用到两个类JSONObject和JSONArray,这两个类在json-lib-2.4-jdk15包中,在使用JSONObject时除了需要这个包外还需要相关的依赖包 ...

  9. 4、<VBA>学习用刘永富老师插件解析JSON格式数据

    Sub 刘永富老师插件学习()Dim j As API.JSONSet j = New API.JSONj.Parse "{'data':{'route':{'destination':'1 ...

最新文章

  1. 物联网设备僵尸网络趋势分析
  2. oracle 加号和on,Oracle中连接与加号(+)的使用
  3. linux——延时任务与定时任务
  4. 百练OJ:2767:简单密码
  5. linux内存真实使用情况,为什么TOP看不出真实的内存占用情况?
  6. NAnt简单介绍和我第一个例子
  7. JS之获取指定位置Unicode的charCodeAt()方法
  8. 【移植Linux 3.4.2内核第三步】从0制作支持新内核的文件系统
  9. 算法入门篇四 桶排序
  10. 用C#生成不重复的随机数
  11. Java8函数式编程详解
  12. js禁止苹果页面底部滚动_js禁止页面滚动
  13. Appium和Python实现蚂蚁森林自动化收取能量
  14. 海康 linux java demo_Java 实现 海康摄像头抓拍图像 Windows、Linux
  15. Unity 图片切割九宫格
  16. 算法图解 第7章 狄克斯特拉算法
  17. Python怎么进行时区的转换
  18. Java-多线程的使用
  19. 程序员的中年危机及路在何方?
  20. win7 隐藏受保护的操作系统文件 消失

热门文章

  1. css base64 图片背景
  2. POJ_2117 Elcctricity (tarjan 求割点)
  3. 物理频率、模拟角频率、数字角频率和归一化数字角频率个人理解
  4. tensorflow 基础: static shape VS Dynamic shape, get_shape VS tf.shape() , reshape VS set_shape
  5. Shell: 文本文件操作
  6. 09 spring-aop
  7. (Unity4.7)assetbundle 坑爹总结
  8. C# 类型转换问题一
  9. python 逐行读取文本
  10. 基于ARM-LINUX的温度传感器驱动-DS18B20