首页 > 编程 > JavaScript > 正文

详解js中Json的语法与格式

2019-11-19 18:53:01
字体:
来源:转载
供稿:网友

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转对象1function 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对象转Jsonfunction 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(',') + '}';}

以上就是本文的全部内容,希望对大家有所帮助,谢谢对武林网的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表