zoukankan      html  css  js  c++  java
  • JavaWeb 之 JSON

    一、什么是JSON

      JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。 同时也易于机器解析和生成。 JSON 采用完全独立于语言的文本格式, 而且很多语言都提供了对 json 的支持(包括 C, C++, C#, Java, JavaScript, Perl, Python 等) 。 这样就使得 JSON 成为理想的数据交换格式。

      json 是一种轻量级的数据交换格式。

      轻量级指的是跟 xml 做比较。

      数据交换指的是客户端和服务器之间业务数据的传递格式。

      用途和优点

        (1)json 现在多用于存储和交换文本信息的语法

        (2)进行数据的传输

        (3)JSON 比 XML 更小、更快,更易解析

    二、JSON 在 JavaScript 中的使用

      1、json 的定义

        json 是由键值对组成, 并且由花括号(大括号) 包围。 每个键由引号引起来, 键和值之间使用冒号进行分隔,多组键值对之间进行逗号进行分隔。

        语法:

        (1)数据在名称/值对中:json 数据是由键值对构成的。

           ① 键用引号(单双都行)引起来,也可以不使用引号

           ② 值的类型:

             a、数字(整数或浮点数)

             b、字符串(在双引号中)

             c、逻辑值(true 或 false)

             d、数组(在方括号中) 如:{"persons":[{},{}]}

             e、对象(在花括号中) 如: {"address":{"province":"河北"....}}

             f、null :控制

        (2)数据有逗号分隔:多个键值对由逗号分隔

        (3)花括号保存对象:使用 {} 定义 json 格式

        (4)方括号保存数据:[]

        json 定义示例:

        var jsonObj = {
                "key1":12,
                "key2":"abc",
                "key3":true,
                "key4":[11,"arr",false],
                "key5":{
                    "key5_1" : 551,
                    "key5_2" : "key5_2_value"
                },
                "key6":[
                    {
                        "key6_1_1":6611,
                        "key6_1_2":"key6_1_2_value"
                    },
                    {
                        "key6_2_1":6621,
                        "key6_2_2":"key6_2_2_value"
                    }]
            };

      2、json 的访问

        json 本身是一个对象。

        json 中的 key 我们可以理解为是对象中的一个属性。

        json 中的 key 访问就跟访问对象的属性一样: json 对象.key

        获取数据语法:

        (1)json对象.键名

        (2)json对象["键名"]

        (3)数组对象[索引]

        (4)遍历对象

        json 访问示例:

    alert(typeof(jsonObj));// object json 就是一个对象
    alert(jsonObj.key1); //12
    alert(jsonObj.key2); // abc
    alert(jsonObj.key3); // true
    alert(jsonObj.key4);// 得到数组[11,"arr",false]
    
    // json 中 数组值的遍历
    for(var i = 0; i < jsonObj.key4.length; i++) {
        alert(jsonObj.key4[i]);
    } 
    
    alert(jsonObj.key5.key5_1);//551
    alert(jsonObj.key5.key5_2);//key5_2_value
    alert( jsonObj.key6 );// 得到 json 数组
    
    // 取出来每一个元素都是 json 对象
    var jsonItem = jsonObj.key6[0];
    // alert( jsonItem.key6_1_1 ); //6611
    alert( jsonItem.key6_1_2 ); //key6_1_2_value

      3、json 的两个常用方法

        json 的存在有两种形式。

          一种是: 对象的形式存在, 我们叫它 json 对象。

          一种是: 字符串的形式存在, 我们叫它 json 字符串。

          一般我们要操作 json 中的数据的时候, 需要 json 对象的格式。

          一般我们要在客户端和服务器之间进行数据交换的时候, 使用 json 字符串。

    JSON.stringify() 把 json 对象转换成为 json 字符串
    
    JSON.parse() 把 json 字符串转换成为 json 对象
    

        示例代码:

    // 把 json 对象转换成为 json 字符串
    var jsonObjString = JSON.stringify(jsonObj); // 特别像 Java 中对象的 toString
    alert(jsonObjString)
    
    
    // 把 json 字符串。 转换成为 json 对象
    var jsonObj2 = JSON.parse(jsonObjString);
    alert(jsonObj2.key1);// 12
    alert(jsonObj2.key2);// abc
  • 相关阅读:
    Java 中位移运算符 >>,>>>,<<
    HashMap 源码解读
    CentOS 配置防火墙操作实例(启、停、开、闭端口)
    CentOS 配置防火墙操作实例(启、停、开、闭端口)
    js实现页面重新加载
    js实现页面重新加载
    关于Ajax的技术组成与核心原理
    关于Ajax的技术组成与核心原理
    PHP水印制作
    PHP水印制作
  • 原文地址:https://www.cnblogs.com/niujifei/p/15151965.html
Copyright © 2011-2022 走看看