详解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中的事件驱动
May 21 Javascript
JavaScript简单实现鼠标拖动选择功能
Mar 06 Javascript
JavaScript创建一个object对象并操作对象属性的用法
Mar 23 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
Apr 13 Javascript
onmouseover事件和onmouseout事件全面理解
Aug 15 Javascript
JSON与XML的区别对比及案例应用
Nov 11 Javascript
详解浏览器渲染页面过程
Feb 09 Javascript
Node.JS更改Windows注册表Regedit的方法小结
Aug 18 Javascript
js实现登录与注册界面
Nov 01 Javascript
小程序实现发表评论功能
Jul 06 Javascript
vue中的inject学习教程
Apr 24 Javascript
JavaScript简单编程实例学习
Feb 14 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
mysql数据库差异比较的PHP代码
2012/02/05 PHP
php+mysql实现无限级分类
2015/11/11 PHP
PHP数据库操作Helper类完整实例
2016/05/11 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
基于php实现的验证码小程序
2016/12/13 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
jQuery select操作控制方法小结
2010/05/26 Javascript
JavaScript中的排序算法代码
2011/02/22 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
js实现拖动缓动效果
2020/01/13 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
python 实现图片上传接口开发 并生成可以访问的图片url
2019/12/18 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
探索欧洲最好的品牌:Bombinate
2019/06/14 全球购物
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
大学毕业通用个人的求职信
2013/12/08 职场文书
司机辞职报告范文
2014/01/20 职场文书
民事上诉状范文
2015/05/22 职场文书
运动会广播稿20字
2015/08/19 职场文书