JS —— JSON

    xiaoxiao2023-03-25  6

    一、JSON

    JSON:JavaScript Object Notation.JavaScript 对象表示法。

    JSON 语法:

    1、数据在名称/值对中

    2、数据由逗号分隔

    3、花括号保存对象

    4、方括号保存数组

    5、名称/值对之间或JSON 对象之间使用逗号分隔

    示例一:单个JSON 对象

    var milan={ "name":"Milan", "sex":"male", "age":"0", }; 示例二:数组包含JSON 对象 var people=[ {"name":"Milan","sex":"male","age":"0"}, {"name":"Xiaoxia","sex":"female","age":'"1"} ]; 示例三:JSON 对象包含数组 var info={ "people":[ {"name":"Milan","sex":"male","age":"1"}, {"name":"Xiaoxia","sex":"female","age":"1"} ] };

    JSON 值可以是:

    数字(整数或浮点数)

    字符串(在双引号中)

    逻辑值(true 或 false)

    数组(在方括号中)

    对象(在花括号中)

    null

    JSON 特点:

    从上面示例可看出,JSON 对象包含在花括号之间。同XML 一样,具有自描述性,但JSON 能使用内建立的JavaScript eval()方法进行解析,且读写速度更快。

    简单读写示例:

    <script> //直接创建JSON 对象 var milan={"name":"Milan","sex":"male","age":"1"}; //使用JSON 对象 alert("创建的JSON 对象属性值为:"+"name:"+milan.name+" sex:"+milan.sex+" age:"+milan.age); milan.age=2; alert("age:"+milan.age); </script> 浏览器显示:

    对于示例二,访问数组中的JSON 对象语法同数组,如people[0]即是第一个JSON 对象。

    二、JSON 对象

    创建方法:

    1、直接创建(上面示例)。

    2、通过解析字符串得来:

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

    <script> var txt='{"name":"Milan","sex":"male"}';//可使用多段字符串相加形式,但语法不能出错,否则无法解析 var milanObject=eval("("+txt+")");//注意两个括号! </script> eval()函数会编译和执行任何JavaScript代码,所以可能会有安全问题。建议使用解析器。

    (2)、JSON.parse(txt):即解析器解析得到。JSON 解析器只能识别JSON 文本,而不会执行其它代码。

    说明:JSON 解析器需要浏览器的支持,对于有的低版本浏览器(如IE 8、火狐3.5、safari4等及以下版本)不支持,对此可引入库来解决。

    需要的库: https://github.com/douglascrockford/JSON-js

    JSON 使用:

    1、使用存放于外部的JSON对象:(引入后可直接使用)

    <script src="dddd.json"></script>

    实际上,.json可以是任何名字,只要与原文件名与格式一样就能读取,取格式名为json只是一个标准。JSON 的MIME (Multipurpose Internet Mail Extensions)类型为application/json。

    2、html中使用JavaScript创建JSON对象。

    三、JSON.parse()与JSON.stringify()

    JSON.stringify()是JSON.parse() 的相反过程,即将json 对象转换为字符串。

    alert(typeof {"id":1,"name":"名称"});//提示Object

    alert(typeof JSON.stringify({"id":1,"name":"名称"}));//提示string

    注意拼写:stringify

    转载请注明原文地址: https://ju.6miu.com/read-1203843.html
    最新回复(0)