详解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 相关文章推荐
js cookies 常见网页木马挂马代码 24小时只加载一次
Apr 13 Javascript
js 内存释放问题
Apr 25 Javascript
javascript事件冒泡实例分析
May 13 Javascript
js简单时间比较的方法
Aug 02 Javascript
Angular2  NgModule 模块详解
Oct 19 Javascript
微信小程序 页面之间传参实例详解
Jan 13 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
Jul 31 Javascript
vue中实现先请求数据再渲染dom分享
Mar 17 Javascript
vue生命周期实例小结
Aug 15 Javascript
用Cordova打包Vue项目的方法步骤
Feb 02 Javascript
Vue 实现html中根据类型显示内容
Oct 28 Javascript
js实现上下左右键盘控制div移动
Jan 16 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 读取Postgresql中的数组
2013/04/14 PHP
phpize的深入理解
2013/06/03 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
php如何连接sql server
2015/10/16 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
javascript hashtable实现代码
2009/10/13 Javascript
JavaScript OOP类与继承
2009/11/15 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
python的即时标记项目练习笔记
2014/09/18 Python
Django中处理出错页面的方法
2015/07/15 Python
深入理解python函数递归和生成器
2016/06/06 Python
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
Django 框架模型操作入门教程
2019/11/05 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
pymysql模块的操作实例
2019/12/17 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
人事经理岗位职责
2014/04/28 职场文书
委托证明范本
2014/11/25 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
初中政治教师教学反思
2016/02/23 职场文书
传单、海报早OUT了,另类传单营销方案送给你!
2019/07/15 职场文书
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android