摘要:可以表示三種類型的值,簡單值對象,數(shù)組。使用表示對象中的對象中的對象在中表示對象時必須給對象的屬性添加雙引號。此外,沒有聲明變量,其次,末尾沒有分號。表示數(shù)組中數(shù)組采用的是中數(shù)組的字面量形式。如果還原函數(shù)返回則表示要在結(jié)果中刪除相應的鍵。
title: JSON
date: 2016-11-8
tags: JavaScript
JSON(JavaScript Object Notation, JavaScript對象表示法)。
JSON 利用了 JS 中的一些模式來表示結(jié)構(gòu)化數(shù)據(jù)。
JSON 是一種數(shù)據(jù)格式,而不編程語言。
JSON 可以表示三種類型的值,簡單值,對象,數(shù)組。
對于簡單值,在JS中,JSON 可以表示,字符串,數(shù)值,布爾值,null,但是不支持JS 中的特殊值 undefined。
使用 JSON 表示對象JSON 不支持變量,函數(shù)或?qū)ο髮嵗?/p>
//JSON 中的對象 { "name":"Jack", "age":29, "school":{ "name":"huaxin school", "location":"china" } } //JS 中的對象 var object = { "name":"Macil", "age":29 };
在 JSON 中表示對象時必須給對象的屬性添加雙引號。此外,沒有聲明變量,其次,末尾沒有分號。
JSON 表示數(shù)組JSON 中數(shù)組采用的是 JS 中數(shù)組的字面量形式。
[24,"hello",false]
同樣的,JSON 中數(shù)組也沒有變量好分號。
把數(shù)字和對象結(jié)合起來,便可以構(gòu)成復雜的數(shù)據(jù)集合。
0x01 解析和序列化JSON 數(shù)據(jù)結(jié)構(gòu)可以被解析為有用的 JS 對象,這也是 JSON 成為 Web 服務開發(fā)中交互數(shù)據(jù)的事實標準的重要原因。
JSON 對象有兩個方法: stringify() 和 parse()。
stringify():把 JS 對象序列化為 JSON 字符串
parse():把 JSON 字符串解析為原生的 JS 值
JSON.stringify() 除了要序列化的 JS 對象外,還可以接受另外兩個參數(shù)。需要添加的第二個參數(shù)是過濾器,可以是數(shù)組(數(shù)組過濾器)或者函數(shù)(函數(shù)過濾器)。第三個參數(shù)表示,是否在 JSON 字符串中保留縮進。
如果過濾器參數(shù)是數(shù)組,那么 JSON.stringify() 的結(jié)果中將只包含數(shù)組中列出的屬性。
var books = { "title":"挪威的森林", "authors":["村上春樹"], "edition":3, "year":2011 }; var jsonText = JSON.stringify(books,["title","edition"]); console.log(jsonText); //{"title":"挪威的森林","edition":3}
函數(shù)過濾器中的函數(shù)接受兩參數(shù):屬性名 和 屬性值,而屬性名只能是字符串。
函數(shù)過濾器會根據(jù)傳入的鍵來決定返回的結(jié)果。但若是函數(shù)返回了 undefined 那么相應的屬性會被忽略。
var books = { "title":"挪威的森林", "authors":["村上春樹","芥川龍之介","松下幸之助","太宰治"], "edition":3, "year":2011 }; var jsonText = JSON.stringify(books,function(key,value){ switch(key){ case "authors": return value.join(","); case "year": return 50000; case "edition": return undefined; default : return value; } }); console.log(jsonText); //{"title":"挪威的森林","authors":"村上春樹,芥川龍之介,松下幸之助,太宰治","year":50000}
JSON.stringify() 的第上參數(shù)可以為數(shù)字或者任意字符。分別表示要縮進的空格數(shù)和用來表示的縮進字符串(不再使用空格)
var jsonText = JSON.stringify(book,null,"---");JSON.parse()
與 JSON.stringigy() 方法對應,JSON.parse() 可以接受一個函數(shù)作為還原函數(shù)(reviver),它也同樣接收兩參數(shù),一個鍵和一個值。
如果還原函數(shù)返回 undefined 則表示要在結(jié)果中刪除相應的鍵。
在將日期對象轉(zhuǎn)換為 Date 對象時,便經(jīng)常使用到還原函數(shù)了。
var books = { "title":"挪威的森林", "authors":["村上春樹","芥川龍之介","松下幸之助","太宰治"], "edition":3, "year":2011, "releaseDate":new Date(2016,11,8) }; var jsonText = JSON.stringify(books,function(key,value){ switch(key){ case "authors": return value.join(","); case "year": return 50000; case "edition": return undefined; default : return value; } }); var bookCopy = JSON.parse(jsonText,function(key,value){ if (key == "releaseDate"){ return new Date(value); } else { return value; } })
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/86531.html
摘要:什么是對象簡譜是一種輕量級的數(shù)據(jù)交換格式。易于人閱讀和編寫。同時也易于機器解析和生成。 什么是Json? Json(JavaScript Object Notation,JS 對象簡譜)是一種輕量級的數(shù)據(jù)交換格式。易于人閱讀和編寫。同時也易于機器解析和生成。一些合法的Json實例:鍵值對:(可以沒有鍵只有值)鍵 ...
摘要:在這里今天老蔣在針對商家新加坡機房進行測評。關(guān)于云服務器相關(guān)的文章優(yōu)惠碼優(yōu)惠碼整理專題每月更新最新優(yōu)惠活動新用戶最高送美元韓國機房機房測評韓國首爾機房綜合速度和線路去程回程測試新人教程新人系列教程新注冊賬戶且用優(yōu)惠碼享受贈送余額老蔣在昨天的文章中有提到Vultr商家韓國首爾機房,雖然離我們距離比較近,但是人家設(shè)立的機器并非針對我們大陸用戶的,而是除了我們之外的其他亞洲地區(qū)的速度是比較好的,比...
摘要:最近一段時間,經(jīng)典主機新增日本大阪軟銀機房,國內(nèi)的值相當不錯,特別適合聯(lián)通用戶訪問使用。日本經(jīng)典主機電信線路日本經(jīng)典主機電信線路這是經(jīng)典的日本大阪軟銀機房電信回程線路。經(jīng)典瓦工的VPS主機現(xiàn)在已經(jīng)完全走了高端領(lǐng)域了,CN2 GIA的VPS主機現(xiàn)在連月付都沒有了,只有季付了,平均下來月付必須是十幾美元才可以,價格實在是太貴了。不過,好在經(jīng)典VPS主機的線路質(zhì)量不錯,而且機房的帶寬給得足,用于建...
閱讀 3530·2023-04-25 14:57
閱讀 2577·2021-11-22 14:56
閱讀 2100·2021-09-29 09:45
閱讀 1781·2021-09-22 15:53
閱讀 3334·2021-08-25 09:41
閱讀 912·2019-08-29 15:22
閱讀 3310·2019-08-29 13:22
閱讀 3136·2019-08-29 13:08