详解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 相关文章推荐
Valerio 发布了 Mootools
Sep 23 Javascript
jquery获取当前点击对象的value方法
Feb 28 Javascript
jquery获取tagName再进行判断
May 29 Javascript
JavaScript之数组(Array)详解
Apr 01 Javascript
JQuery中DOM实现事件移除的方法
Jun 13 Javascript
jQuery Validation PlugIn的使用方法详解
Dec 18 Javascript
浅谈移动端之js touch事件 手势滑动事件
Nov 07 Javascript
利用JS制作万年历的方法
Aug 16 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
Aug 30 Javascript
vue实现一个炫酷的日历组件
Oct 08 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 Javascript
小程序富文本提取图片可放大缩小
May 26 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
2006/10/09 PHP
PHP 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
javascript radio 联动效果
2009/03/04 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
WWE美国职业摔角官方商店:WWE Shop
2018/11/15 全球购物
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
股东出资证明书范例
2014/10/04 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers