领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

JSON 学习笔记第一天——初识

nixiaole 2024-11-18 15:31:20 知识剖析 19 ℃

1. 什么是JSON

  • JSON 是 JavaScript Object Notation 简写,是一种轻量级的数据交换格式。
  • JSON 是 JS 对象的字符串表示法,它使用纯文本表示一个 JS 对象的信息,本质是一个字符串。
  • JSON 与 XML 文档相比较,JSON 格式的数据比 XML 更加易于读取,解析速度更快,而且JSON存储的数据比XML更小;没有XML文档复杂的标签。
  • JSON 独立于编程语言和平台之外,支持各种不同的编程语言进行JSON解析。

2. JSON 的表示

JSON 数据支持两种表示,分别是对象表示、数组表示。

2.1 对象表示法

对象表示法是在大括号 { } 中进行书写,一个JSON对象可以包含多个 key/value(键/值)对,key 必须是字符串,value 可以是合法的 JSON 数据类型( 字符串, 数字, 对象, 数组, 布尔值或 null ),key 和 value 中使用冒号 (:) 分割,每个 key/value 对使用逗号 (,) 分割。

/* JSON 对象表示法 */
obj = { 
    "name":"runoob", 
    "alexa":10000, 
    "site":null ,
    "address":"henan-xinyang",
    "Tel":12345678900
}

2.2 数组表示法

JSON 数组在中括号 [ ] 中书写,JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null),JavaScript 中,数组值可以是以上的 JSON 数据类型,也可以是 JavaScript 的表达式,包括函数,日期,及 undefined 。

/* 数组表示法 */
arrObj = [ "HeNan", "XinYang", "MyHome" ]
         

2.3 嵌套表示

JSON数据格式非常灵活,可以在一个对象里嵌套一个数组,也可以在数组里嵌套一个对象或另外一个数组。

/*  JSON 的嵌套表示以及访问格式  */

/* 1. 对象属性的值value可以是一个数组 */
obj1 = {
        "username":"Tom",
        "age":20,
        "address":["shanghai","jiading","hongshilu"]
        }

/* 数组大小知道前提下:访问读取 "jiading"  */
var x = obj1.address[1];

/* 数组大小未知时:for-in 循环读取 */
for (i in obj1.address) {
    x += obj1.address[i] + "<br>";
}


/* 2. JSON 对象中数组可以包含另外一个数组,或者另外一个 JSON 对象 */ 
obj2= {
        "username":"网站",
        "age":3,
        "address": [
            { 
                "province":"shanghai",
                "city":[ "jiading", "hongshilu"]
            },
            { 
                "province":"henan", 
                "city":[ "xinyang", "xixian"] 
            }
         ]
      }

/* for-in 遍历访问每个元素值 */
for (i in obj2.address) {
    x += "<h1>" + obj2.address[i].province+ "</h1>";
    for (j in obj2.address[i].city) {
        x += obj2.address[i].city[j] + "<br/>";
    }
}

/* 根据索引访问其中一个 : 如 xixian */
var xx = obj2.address[1].city[1];


/* 3. 对象属性值可以是一个对象 */
obj3 = {
           "username":"马云",
            "salary":100,
            "address":{
                "province":"上海",
                "city","嘉定红世路"
                }
        }

var x1 = obj3.address.province + obj3.address["city"];

3. JSON 的转换

  • JSON.parse() 将服务端返回的JSON字符串格式的数据转换成JSON对象进行访问,这个字符串必须严格是JSON格式的。

/* 服务端返回的json字符串在前端解析成JSON对象 */

var obj = JSON.parse('{ "username":"老王", "salary":10000, "city":"日本" }');

var x = obj.uesrname;

  • JSON.stringify() 用于向服务端提交数据,将JavaScript对象转成符合JSON格式的字符串。

var obj = { "username":"老王", "salary":10000, "city":"日本"};

var jsonStr= JSON.stringify(obj); /* 前端可以将 jsonStr 字符串发送到服务端 */


今天就简单的讲解下JSON相关知识,熟能生巧,只有多练习,多运用,才能发现更多的问题。

更多学习可以关注我的CSDN博客 https://blog.csdn.net/qq_31414433

希望自己接下来能坚持写下去,分享更多!收获更多!

给自己打个气!!!

Tags:

最近发表
标签列表