详解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表达式:URL 协议介绍
Mar 10 Javascript
深入理解JavaScript中的箭头函数
Jul 28 Javascript
获取阴历(农历)和当前日期的js代码
Feb 15 Javascript
js计算系统当前日期是星期几的方法
Jul 14 Javascript
支持移动端原生js轮播图
Feb 16 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
Mar 09 Javascript
详解vue2.0组件通信各种情况总结与实例分析
Mar 22 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
使用svg实现动态时钟效果
Jul 17 Javascript
Javascript中的this,bind和that使用实例
Dec 05 Javascript
JavaScript实现动态留言板
Mar 16 Javascript
js实现圆形菜单选择器
Dec 03 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/10/09 PHP
php函数连续调用实例分析
2015/07/30 PHP
Laravel框架定时任务2种实现方式示例
2018/12/08 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
2013/12/31 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
Vue中正确使用Element-UI组件的方法实例
2020/10/13 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
利用python获得时间的实例说明
2013/03/25 Python
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
Python引用计数操作示例
2018/08/23 Python
Python读写文件基础知识点
2019/06/10 Python
Python csv模块使用方法代码实例
2019/08/29 Python
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
.NET面试10题
2014/02/24 面试题
保险专业大学生职业规划书
2014/03/03 职场文书
办公室主任职责范本
2014/03/07 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
南京导游词
2015/02/03 职场文书
个人先进事迹总结
2015/02/26 职场文书
西游记读书笔记
2015/06/25 职场文书
实用求职信模板范文
2019/05/13 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
java实现web实时消息推送的七种方案
2022/07/23 Java/Android