JSON

【W3s学JSON】JSON入门概念学习笔记(2)

字号+ 作者:H5之家 来源:H5之家 2017-07-03 12:02 我要评论( )

这里需要注意的是xxx/xxx相当于花括号,需要在那中间来申明变量之类的操作,否则就直接作为文本显示出来了。 在下面的章节,您将学到如何把 JSON 文本转换为 JavaScript 对象。 JSON 文件 JSON 文件的文件类型是 .j

这里需要注意的是<xxx></xxx>相当于花括号,需要在那中间来申明变量之类的操作,否则就直接作为文本显示出来了。



在下面的章节,您将学到如何把 JSON 文本转换为 JavaScript 对象。

JSON 文件

  • JSON 文件的文件类型是 ".json"
  • JSON 文本的 MIME 类型是 "application/json"

  • 使用

    把 JSON 文本转换为 JavaScript 对象

    JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。

    为了更简单地为您讲解,我们使用字符串作为输入进行演示(而不是文件)。

    JSON 实例 - 来自字符串的对象

    创建包含 JSON 语法的 JavaScript 字符串:

    var txt = '{ "employees" : [' + '{ "firstName":"Bill" , "lastName":"Gates" },' + '{ "firstName":"George" , "lastName":"Bush" },' + '{ "firstName":"Thomas" , "lastName":"Carter" } ]}';

    由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。

    eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:

    var obj = eval ("(" + txt + ")");

    在网页中使用 JavaScript 对象:

    例子 <p> First Name: <span id="fname"></span><br /> Last Name: <span id="lname"></span><br /> </p> <script type="text/javascript"> document.getElementById("fname").innerHTML = obj.employees[1].firstName document.getElementById("lname").innerHTML = obj.employees[1].lastName </script>

    亲自试一试

    <html> <body> <p> First Name: <span id="fname"></span><br /> Last Name: <span id="lname"></span><br /> </p> <script type="text/javascript"> var txt = '{ "employees" : [' + '{ "firstName":"Bill" , "lastName":"Gates" },' + '{ "firstName":"George" , "lastName":"Bush" },' + '{ "firstName":"Thomas" , "lastName":"Carter" } ]}'; var obj = eval ("(" + txt + ")"); document.getElementById("fname").innerHTML = obj.employees[1].firstName document.getElementById("lname").innerHTML = obj.employees[1].lastName </script> </body> </html>


    JSON 解析器

    提示:eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。

    使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。

    在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。

    较新的浏览器和最新的 ECMAScript (JavaScript) 标准中均包含了原生的对 JSON 的支持。

    Web 浏览器支持 Web 软件支持

    亲自试一试

    对于较老的浏览器,可使用 JavaScript 库: https://github.com/douglascrockford/JSON-js

    JSON 格式最初是由 Douglas Crockford 制定的。


    Reference

    Github:  douglascrockford/JSON-js


    JSON in JavaScript Douglas Crockford douglas@crockford.com 2015-05-03 JSON is a light-weight, language independent, data interchange format. See The files in this collection implement JSON encoders/decoders in JavaScript. JSON became a built-in feature of JavaScript when the ECMAScript Programming Language Standard - Fifth Edition was adopted by the ECMA General Assembly in December 2009. Most of the files in this collection are for applications that are expected to run in obsolete web browsers. For most purposes, json2.js is the best choice. json2.js: This file creates a JSON property in the global object, if there isn't already one, setting its value to an object containing a stringify method and a parse method. The parse method uses the eval method to do the parsing, guarding it with several regular expressions to defend against accidental code execution hazards. On current browsers, this file does nothing, preferring the built-in JSON object. There is no reason to use this file unless fate compels you to support IE8, which is something that no one should ever have to do again. json_parse.js: This file contains an alternative JSON parse function that uses recursive descent instead of eval. json_parse_state.js: This files contains an alternative JSON parse function that uses a state machine instead of eval. cycle.js: This file contains two functions, JSON.decycle and JSON.retrocycle, which make it possible to encode cyclical structures and dags in JSON, and to then recover them. This is a capability that is not provided by ES5. JSONPath is used to represent the links. []



     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • JQuery解析多维的Json数据格式

      JQuery解析多维的Json数据格式

      2017-07-03 12:04

    • JSON字符串与JSON对象的区别

      JSON字符串与JSON对象的区别

      2017-07-02 09:01

    • php返回json C# 转换Json类

      php返回json C# 转换Json类

      2017-07-01 14:05

    • 探讨PHP JSON中文乱码的解决方法详解

      探讨PHP JSON中文乱码的解决方法详解

      2017-07-01 14:02

    网友点评