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