详解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 相关文章推荐
在IE中调用javascript打开Excel的代码(downmoon原作)
Apr 02 Javascript
firefox和IE系列的相关区别整理 以备后用
Dec 28 Javascript
JS跨域代码片段
Aug 30 Javascript
Javascript变量作用域详解
Dec 06 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
Jul 28 Javascript
jquery实现全选功能效果的实现代码
May 05 Javascript
jquery获取所有选中的checkbox实现代码
May 26 Javascript
JavaScript基础之AJAX简单的小demo
Jan 29 Javascript
JS实现汉字与Unicode码相互转换的方法详解
Apr 28 Javascript
jquery网页加载进度条的实现
Jun 01 jQuery
p5.js临摹动态图形实现方法详解
Oct 23 Javascript
JS校验与最终登陆界面功能完整示例
Jan 13 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
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
2019/03/21 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
xmlplus组件设计系列之树(Tree)(9)
2017/05/02 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
angular 内存溢出的问题解决
2018/07/12 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
React学习之JSX与react事件实例分析
2020/01/06 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
python中迭代器(iterator)用法实例分析
2015/04/29 Python
初步讲解Python中的元组概念
2015/05/21 Python
深入理解Python中的*重复运算符
2017/10/28 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
后勤人员自我鉴定
2013/10/20 职场文书
装修协议书范本
2014/04/21 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
个人借款协议书范本
2014/11/17 职场文书
考试作弊检讨
2015/01/27 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
用电申请报告范文
2015/05/18 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
七年级英语教学反思
2016/02/15 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
redis中lua脚本使用教程
2021/11/01 Redis