详解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 相关文章推荐
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
Dec 06 Javascript
JS面向对象、prototype、call()、apply()
May 14 Javascript
Javascript 实现TreeView CheckBox全选效果
Jan 11 Javascript
js调出上下文菜单的实例
Dec 17 Javascript
20分钟打造属于你的Bootstrap站点
Jul 27 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
js制作可以延时消失的菜单
Jan 13 Javascript
js实现多张图片延迟加载效果
Jul 17 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
Mar 20 Javascript
微信小程序视图容器(swiper)组件创建轮播图
Jun 19 Javascript
Vue源码解析之数据响应系统的使用
Apr 24 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
Sep 24 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通过COM使用ADODB的简单例子
2006/12/31 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
js保留小数点后几位的写法
2014/01/03 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
如何使用angularJs
2017/05/08 Javascript
Vue列表页渲染优化详解
2017/07/24 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
2018/11/16 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
python查找第k小元素代码分享
2013/12/18 Python
Django实现内容缓存实例方法
2020/06/30 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
服务之星事迹材料
2014/05/03 职场文书
个人自荐书范文
2015/03/09 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js