• json


    json:javascript对象表示法(JavaScript Object Notation)。
    json是轻量级的文本数据交换格式。
    json使用javascript语法来描述数据对象,但是json独立于语言和平台。


    为什么要使用json?
    对于ajax应用程序来说,json比xml更快更易用。
    类似XML
    1、json是纯文本
    2、json具有“自我描述性”(开发者可读)
    3、json具有层级结构(值中存在值)
    4、json可通过javascript进行解析
    5、json数据可使用ajax进行传输
    不同于XML
    1、没有结束标签
    2、更短
    3、读写的速度更快
    4、能够使用内建javascript eval()方法进行解析
    5、使用数组
    6、不使用保留字

    json语法

    1、数据在名称/值对中
        名称必须在双引号中
        json的值可以是以下几种类型
        * 数字
        * 字符串--在双引号中
        * 逻辑值true或false
        * 数组--在方括号中
        * 对象--在花括号中
        * null
    2、数据由逗号分隔
    3、花括号保存数据
    4、方括号保存数组

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

    2、JSON 解析器 JSON.parse()
    eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。
    JSON 解析器只能识别 JSON 文本,而不会编译脚本。
    所以使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。
    比如将下面代码中的某个值换成alert(123);
    eval()会编译js代码先弹出123再执行下面内容,如果是window.location.href=""那就直接跳转页面了
    而parse()会报错不执行

    var jsondata = '{"staff": [{"name": "洪七", "age": alert(123)}, {"name": "欧阳", "age": "72"}, {"name": "南帝", "age": "69"}]}'
        var jsonobj = eval("("+ jsondata +")");
        alert(jsonobj.staff[0].name);
        var jsonobj2 = JSON.parse(jsondata);
        alert(jsonobj2.staff[1].name);
  • 相关阅读:
    期中考试补完计划
    c++简单程序设计-4
    c++简单程序设计-3
    c++简单程序设计-2
    c++简单程序设计-1
    layer ifram 弹出框
    定时发邮件
    二维码生成
    文件或文件夹的压缩
    excel 导入 与 导出
  • 原文地址:https://www.cnblogs.com/wanbi/p/4296805.html
Copyright © 2020-2023  润新知