JavaScript基础笔记JSON

Posted Shadowplay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript基础笔记JSON相关的知识,希望对你有一定的参考价值。

JSON

关于JSON,最重要的一点是理解它是一种数据格式,不是编程语言。

一、语法

JSON 不支持变量、函数或对象实例,它就是一种表示结构化数据的格式,虽然与 javascript 中表示
数据的某些语法相同,但它并不局限于 JavaScript 的范畴。

JSON语法可以表示下列三种类型的值:

一)简单值

使用与JavaScript相同的语法,可以在JSON中表示字符串、数值、布尔值和null。但没有undefined。

注意在表示字符串时,只能使用双引号。

二)对象

对象作为一种复杂的数据类型,表示的是一组无序的键值对。每个键值对中的值可以是简单值,也可以是复杂数据类型的值。

//JavaScript对象
var person = {
    name: "Tom",
    age :19
};
//与JS对象相比,JSON对象不同的地方:
//1.不能声明变量;2.对象的属性必须加双引号;3.没有末尾分号
{
    "name": "Jerry",
    "age": "8",
    "school": {
        "name": "Nan Shan",
        "location": "xx00"
    }
}

三)数组

数组也是一种复杂数据类型,表示一组有序的值的列表,可以通过数值索引来访问其中
的值。数组的值也可以是任意类型——简单值、对象或数组。

//JSON中的数组
[22, "Hello", "king"]
[
{
"title": "Professional JavaScript",
"authors": [
"Nicholas C. Zakas"
],
edition: 3,
year: 2011
},
{
"title": "Professional JavaScript",
"authors": [
"Nicholas C. Zakas"
],
edition: 2,
year: 2009
},
{
"title": "Professional Ajax",
"authors": [
"Nicholas C. Zakas",
"Jeremy McPeak",
"Joe Fawcett"
],
edition: 2,
year: 2008
}
]

二、解析与序列化

可以把JSON数据结构解析为JavaScript对象。

一)JSON对象

早期浏览器使用eval()函数把JSON解析为JavaScript对象和数组。但使用eval()函数对JSON数据进行转换存在一定风险,

因为可能会执行一些恶意代码。所以,建议使用全局对象JSON。

JSON对象的两个方法:

1)JSON.stringify():把JavaScript对象序列化为JSON字符串。

2)JSON.parse与上面相反。

    var book = {
        title: "JavaScript for xx",
        authors: [‘Price‘, ‘Tom‘, "Alex"],
        edition: 9,
        year: 2200
    };
    var jsonText = JSON.stringify(book);
    console.log(jsonText);
    //{"title":"JavaScript for xx",
    // "authors":["Price","Tom","Alex"],"edition":9,"year":2200}
    var bookInfo = JSON.parse(jsonText);
    console.log(bookInfo.authors);

在序列化 JavaScript 对象时,所有函数及原型成员都会被有意忽略,不体现在结果中。此外,值为
undefined 的任何属性也都会被跳过。

3)toJSON()

    var book = {
        title: "JavaScript for xx",
        authors: [‘Price‘, ‘Tom‘, "Alex"],
        edition: 9,
        year: 2200,
        toJSON: function () {
            return this.title;
        }
    };
    var jsonText = JSON.stringify(book);
    console.log(jsonText); //"JavaScript for xx"






以上是关于JavaScript基础笔记JSON的主要内容,如果未能解决你的问题,请参考以下文章

Javascript JSON 的问题

Javascript - 使用 HTML 片段通过电子邮件发送 JSON 输出

学习笔记JSON基础概念简介

[vscode]--HTML代码片段(基础版,reactvuejquery)

使用JavaScript在页面上显示JSON

JavaScript笔记基础篇