详解js中Json的语法与格式


Posted in Javascript onNovember 22, 2016

JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。

由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

JSON语法规则:

数据在 名称/值 对仲
数据由逗号分隔
花括号保存对象
方括号保存数组

JSON 名称/值 对介绍

"name":"张飞",
"age":23

Json的值可以是:

数字(整数或浮点数)
字符串(要包括在双引号中)
逻辑值(true或false)
数组(在方括号中)
对象(在花括号中)

Json转javascript对象的方法为:

eval("(" + str + ")");

代码示例:

<html>
<head>
 <title>Json测试</title>
 <script src="/Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
 <script type="text/javascript">
  //基本上,Json返回的要么是对象,要么是数组,如果单纯返回一个字符串,那么就没有必要用Json了,因此
  //Json基本就下面这些可,不过要注意双引号
  var str0 = "{employees:'测试'}";
  var obj0 = eval("(" + str0 + ")");
  alert(obj0.employees);   //输出测试

  var str = "{name:'张三',Age:21}";
  var obj = eval("(" + str + ")");
  document.write(obj.name + obj.Age); //输出 张三21
  alert(obj.name);

  //别看下面那段Json长,其实是一个对象,属性employees的值是一个对象数组。和上面的相比,只是name:张三 中的"张三"字符串 变成了对象数组而已
  var str2 = '{ "employees" : [' + '{ "firstName":"Bill" , "lastName":"Gates" },' + '{ "firstName":"George" , "lastName":"Bush" },' + '{ "firstName":"Thomas" , "lastName":"Carter" } ]}';
  var obj2 = eval("(" + str2 + ")");
  alert(obj2.employees[0].firstName);  //弹出 Bill

  var str3 = "[1,2,3,4,5,6]";    //json 数组
  var obj3 = eval("(" + str3 + ")");  //输出 2
  alert(obj3[1]);
 </script>
</head>
<body>
 <div id="div1">
 </div>
</body>
</html>

Json与JavaScript对象转换

  JSON转javascript对象

//Json转对象1
function JsonToObject(str) {
 return eval("(" + str + ")");
}

//Json转对象2 
function strToJson(str){
 var json = (new Function("return " + str))();
 return json;
}

//Json转对象3 jQuery工具函数
$.parseJSON()

  javascript对象转JSON

//javascript对象转Json
function ObjectToJson(o) {
 var arr = [];
 var fmt = function(s) {
  if (typeof s == 'object' && s != null) return json2str(s);
  return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
 }
 for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
 return '{' + arr.join(',') + '}';
}

以上就是本文的全部内容,希望对大家有所帮助,谢谢对三水点靠木的支持!

Javascript 相关文章推荐
javascript跟随滚动效果插件代码(javascript Follow Plugin)
Aug 03 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
Mar 13 Javascript
基于jQuery+JSON的省市二三级联动效果
Jun 05 Javascript
总结JavaScript的正则与其他语言的不同之处
Aug 25 Javascript
微信小程序 绘图之饼图实现
Oct 24 Javascript
javascript ASCII和Hex互转的实现方法
Dec 27 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
Jan 11 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
Aug 27 Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
Jul 29 Javascript
vue实现评论列表功能
Oct 25 Javascript
JavaScript实现缓动动画
Nov 25 Javascript
AngularJS中一般函数参数传递用法分析
Nov 22 #Javascript
javascript入门之string对象【新手必看】
Nov 22 #Javascript
模板视图和AngularJS之间冲突的解决方法
Nov 22 #Javascript
js入门之Function函数的使用方法【新手必看】
Nov 22 #Javascript
AngularJS变量及过滤器Filter用法分析
Nov 22 #Javascript
jQuery中$.grep() 过滤函数 数组过滤
Nov 22 #Javascript
JavaScript实现图片轮播组件代码示例
Nov 22 #Javascript
You might like
缓存技术详谈―php
2006/12/14 PHP
php下使用iconv需要注意的问题
2010/11/20 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
2016/06/30 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
css sprite简单实例
2016/05/23 HTML / CSS
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
是否有自动比较结构的方法
2015/06/03 面试题
50道外企软件测试面试题
2014/08/18 面试题
项目采购员岗位职责
2014/04/15 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
2015年行政部工作总结
2015/04/28 职场文书
黄河绝恋观后感
2015/06/08 职场文书
贷款工资证明范本
2015/06/12 职场文书
事业单位岗位说明书
2015/10/08 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
Promise静态四兄弟实现示例详解
2022/07/07 Javascript