JSON语法

JSON是JavaScript Object Notation的缩写,它是一种数据交换格式。
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言
  • JSON 具有自我描述性,更易理解
  • JSON 比 XML 更小、更快,更易解析

JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。

JSON 语法规则 JSON 语法是 JavaScript 对象表示法语法的子集。
1.数据在名称/值对中
2.数据由逗号分隔
3.花括号保存对象
4.方括号保存数组

JSON 名称/值对 JSON 数据的书写格式是:名称/值对 名称必须用双引号""包含起来

值可以是任意javascript数据类型,字符串,布尔,数字,数组甚至是对象

名称/值对之间用逗号,隔开

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    姓名:<span id="name"></span></br>
    年龄:<span id="age"></span></br>
    性别:<span id="sex"></span></br>
    </body>
    <script type="text/javascript">
    var jsonObject = {
    "name":"张三",
    "age":"16",
    "sex":"男",
    };
    document.getElementById("name").innerHTML = jsonObject.name;
    document.getElementById("age").innerHTML = jsonObject.age;
    document.getElementById("sex").innerHTML = jsonObject.sex;
    </script>
</html>
JSON 数组
JSON 数组在方括号[]中书写:
数组可包含多个对象
创建一个对象数组,进行赋值:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
            <script>
var obj= [
    {"name":"小明","age":16},
    {"name":"小华","age":13},
    {"name":"小花","age":18}
]
document.write("姓名:"+obj[0].name +"年龄:"+obj[0].age);
document.write("姓名:"+obj[1].name +"年龄:"+obj[1].age);
document.write("姓名:"+obj[2].name +"年龄:"+obj[2].age);
    </script>
    </body>
</html>
由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    姓名:<span id="name"></span></br>
    年龄:<span id="age"></span></br>
    </body>
    <script type="text/javascript">
    var txt= '{"jsonObject":[' +
'{"name":"小华","age":"13"},' +
'{"name":"小明","age":"16"},' +
'{"name":"小花","age":"18"}]}';
    var obj = eval("("+txt+")")
    document.getElementById("name").innerHTML = obj.jsonObject[1].name;
    document.getElementById("age").innerHTML = obj.jsonObject[1].age;
    </script>
</html>
JSON 对象转换为字符串
通过 JSON.stringify 函数把对象转换为字符串

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <script>
        var person = {"name":"小明","age":"16"};
        document.write("姓名:"+person);
        var String = JSON.stringify(person);
        document.write("String:"+String);
    </script>
    </body>
</html>
JSON 解析器
提示:eval() 函数可编译并执行任何 JavaScript 代码。
使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。
在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。
较新的浏览器和最新的 ECMAScript (JavaScript) 标准中均包含了原生的对 JSON 的支持。
Web 浏览器支持Web 软件支持
  • Firefox (Mozilla) 3.5
  • Internet Explorer 8
  • Chrome
  • Opera 10
  • Safari 4
  • jQuery
  • Yahoo UI
  • Prototype
  • Dojo
  • ECMAScript 1.5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值