var  aa ={name:"zoumm",age:23};var bb = JSON.stringify(aa);console.log(bb); //打印出{"name":"zoumm","age":23}

json的语法可以表示以下三种类型的值。

1、简单值:可以在json中表示字符串、数值、布尔和null。

2、对象:对象作为一种复杂的数据类型,表示一组有序的键值对儿。

3、数组:数组也是一种复杂的数据类型,表示一组有序的值列表,可以通过数值索引来访问其中的值。

json不支持变量、函数或对象实例,它就是一种表示结构化数据的格式。

1.1:简单值:

如下10,“aa”,json字符串与js字符串最大的区别是json字符串必须使用双引号布尔与null也是有效的json形式。

2.1:对象

对象字面量一般写法是:

1

2

3

4

5

6

var aa ={

     name:"zoumm",

    job :"it",

    age :25

  

};

  json对象一般这样写的:

   {"name":"zoumm","job":"it","age":23,"school":{"name":"大学名",“add”:"中国"}}

他们的区别是,json对象不用定义变量,末尾不用写分号,切所有的属性名必须加双引号;

3.1:数组

一般数组是这样定义的:

  var  aa = [23,"zoumm"];

json数组是这样定义的

   [ 23,"zoumm" ]

他们的区别是,json数组不用定义变量,末尾不用写分号;

在Jquery中实现ajax用post请求后台json数据时,返回了一个html,而不是想要的Json数据,这个问题郁闷了一上午,在网上查的方法一没用。最后终于发现是因为在service方法中引用了“super.service();” 这句话。去掉就解决了。

  下面进入正题:js中如何操作json数据。

一、要想熟练的操作json数据,就先要了解json数据的结构,json有两种结构:对象和数组。

  1、对象 一个对象以“{”开始,“}”结束。每个“名称”后跟一个“:”;“‘名称/值’ 对”之间使用“,”分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不需要。例如:  var jsonObj={"str":"abc","intstr":1322323456,"max":6753,"time":"2012-10-19"};

2. 数组是值(value)的有序集合。一个数组以“[” 开始,“]”结束。值之间运用 “,”分隔。

例如:var jsonList=[{"str":"abc","intstr":1322323456,"max":6753,"time":"2012-10-19"},                           {"str":"cde","intstr":782144556,"max":15400,"time":"2012-10-19"}];

二、JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。json在传输过程中是以文本形式存在的,即字符串的形式。而在JS中需要操作的是对象,所以需要把json转换成对象,一般用“eval()”函数来实现,例如 :var obj = eval('(' + json+ ')'); 这样就可以随意操作json了。

三、如果不知道jsonlist对象里的key和value怎样来获得其中的数据?

  for(var i=0;i<jsonList.length;i++){

    for(var key in jsonList[i]){

  alert("key:"+key+",value:"+jsonList[i][key]);

}

  }

用这种方法就可以解析json数据了。

json解析与序列化

1:json对象

 json对象有两个方法stringify和parse,他们分别是把js对象序列化成json字符串,和把json字符串解析成原生js值,例如:

 var  aa ={name:"zoumm",age:23};var bb = JSON.stringify(aa);console.log(bb); //打印出{"name":"zoumm","age":23}

在序列化js对象时,所有函数与原型成员都会有意忽略,不体现在结果中,此外,值为undeined的任何属性也会被跳过。例如:

var  aa1 ={name:"zj",age:25,tmp:undefined,say:function(){ console.log(1); } };var bb1 = JSON.stringify(aa1); console.log(bb1); //打印{"name":"zj","age":25}
}

将json字符串传递给json.parse,就得到js的值,如下:

    var cc = JSON.parse(bb1);console.log(cc );//打印Object {name: "zj", age: 25}

虽然cc与aa1有相同的属性,但是他们是独立的,没有任何关系的对象

2:序列化选项

 JSON.stringify()还接受两个参数,这两个参数用于指定不同方式序列化js对象,第一个参数可以是对象也可以使函数,第二个是一个选项,表示是否在json字符串中保留 缩进,

 var book = {name :"zoumm",age :23,job :"it"}var text = JSON.stringify(book,["name","job"]);//两个参数,参数一:函数或者数组,参数二,截取的数据console.log(text)//打印 {"name":"zoumm","job":"it"}

js中 json详解相关推荐

  1. Node.js中Async详解

    Node.js中Async详解:流程控制 安装 npm install async --save 地址 https://github.com/caolan/async Async的内容主要分为三部分 ...

  2. js中eval 详解

    eval函数可以用来将字符串转换成JavaScript代码并且运行 1 var str = "var a = 10"; 2 eval(str); 3 console.log(a); ...

  3. js中offsetParent详解

    1. offsetParent定义:那么offsetParent就是距离该子元素最近的进行过定位的父元素(position:absolute  relative fixed),如果其父元素中不存在定位 ...

  4. js html 处理json数据,JS中Json数据的处理和解析JSON数据的方法详解

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...

  5. python自动解析json_Python语言解析JSON详解

    本文主要向大家介绍了Python语言解析JSON详解,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. JSON 函数使用 JSON 函数需要导入 json 库:import jso ...

  6. 《Node.js开发实战详解》学习笔记

    <Node.js开发实战详解>学习笔记 --持续更新中 一.NodeJS设计模式 1 . 单例模式 顾名思义,单例就是保证一个类只有一个实例,实现的方法是,先判断实例是否存在,如果存在则直 ...

  7. highlight.js css,JS库之Highlight.js的用法详解

    下载到本地后,新建个页面测试 1.在head中加入css和js的引用 highlight hljs.initHighlightingOnLoad(); 2.添加对应要显示的内容 # 读取文件内容 de ...

  8. js排序算法详解-计数排序

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-计数排序 计数排序就是遍历数组记录数组下的元素出现过多次,然后把这个元素找个位置先安置下来,简单点说就是以原数 ...

  9. js排序算法详解-堆排序

    全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js排序算法详解-堆排序 这种排序方式呢,理论性太强,看动图的时候满脸写着懵逼,多看几遍似乎明白了编者的意图,但是要把这种理论的 ...

最新文章

  1. Nginx如何反向代理网站和设置虚拟主机
  2. 连年亏损的平安健康,能否成为中国版“联合健康”?
  3. Android Selector的简写
  4. Java黑皮书课后题第2章:*2.17(科学:风寒温度)外面有多冷?...twc=35.74+0.6215ta-35.75v0.16+0.4275tav0.16,输入度数、风速显示风寒温度
  5. 牛客练习赛50 F tokitsukaze and Another Protoss and Zerg
  6. 【用jQuery来判断浏览器的类型】及【javascript获取用户ip地址】
  7. java+多线程菜鸟_java多线程
  8. 阿里云与SUSE共同畅聊云原生
  9. 计算机组成与原理第二章,计算机组成原理《第二章》
  10. 笔记本电脑改光驱加装固态和内存条详细步骤教程
  11. Ubuntu设置Root用户开机启动
  12. netty编解码之jboss marshalling
  13. Jpress部署教程
  14. 如何在windows上使用VMware安装macOS虚拟机
  15. Ionic之button标签ng-click无反应解决
  16. 基于JAVA竞赛信息发布及组队系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  17. Java期末考试程序设计—井字棋
  18. 希望OL修改服务器经验,希望OL服务端架设技术教程
  19. 51单片机控制电动机正反转和调速
  20. Android测试驱动开发实践

热门文章

  1. ExpandableListView 箭头靠右
  2. Windows Server Backup 2012设置备份周期
  3. 小议程序员编写技术文档
  4. 在 Linux 中使用动态磁盘
  5. Java的多进程运行模式分析
  6. 使用AIR运行另外的程序。
  7. 639. 解码方法 II
  8. leetcode 810. 黑板异或游戏
  9. 了解如何在20分钟内创建您的第一个Angular应用
  10. css绘制正方体_设计师仅使用CSS绘制了8个标志性X战警