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
原文地址:https://www.cnblogs.com/niujifei/p/15151965.html