详解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子类用Object.getPrototypeOf去调用父类方法解析
Dec 05 Javascript
javascript中attribute和property的区别详解
Jun 05 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
Feb 28 Javascript
JavaScript中对JSON对象的基本操作示例
May 21 Javascript
详解handlebars+require基本使用方法
Dec 21 Javascript
Node.JS文件系统解析实例详解
May 15 Javascript
JS异步函数队列功能实例分析
Nov 28 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
Dec 22 Javascript
解决$store.getters调用不执行的问题
Nov 08 Javascript
简单了解常用的JavaScript 库
Jul 16 Javascript
js实现表格单列按字母排序
Aug 12 Javascript
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
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 strtok()函数的优点分析
2010/03/02 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
js实现表格字段排序
2014/02/19 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
ios中视频的最后一桢问题解决
2019/05/14 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
python字典排序实例详解
2015/05/20 Python
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
Python实现学生成绩管理系统
2020/04/05 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
python自定义时钟类、定时任务类
2021/02/22 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
python自动生成sql语句的脚本
2021/02/24 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
应届生如何写自荐信
2014/01/05 职场文书
代理商会议邀请函
2014/01/27 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
汉语拼音教学反思
2016/02/22 职场文书
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android