摘要:簡介是用于結構化數據序列化的一種文本格式,包含種基礎類型字符串,數字,布爾和和兩種結構類型對象和數組。對象是一個由零或者多個名值對組成的無序集合,其中名值對中名是字符串類型,值則可以是字符串,數字,布爾,,對象或數組類型。
Json
JavaScript Object Notation (JSON)是一個輕量級的,基于文本的,跨語言的數據交換格式。它從ECMAScript編程語言標準(ECMAScript Programming Language Standard)衍生而來。JSON定義了一組用于表示結構化數據的可移植的格式化規則。
簡介JSON是用于結構化數據序列化的一種文本格式,JSON包含4種基礎類型(字符串,數字,布爾和null)和兩種結構類型(對象和數組)。
字符串是一個由零或者多個Unicode字符組成的序列。
對象是一個由零或者多個名/值對組成的無序集合,其中名/值對中名是字符串類型,值則可以是字符串,數字,布爾,null,對象或數組類型。
數組是一個由零或者多個值組成的有序序列。
JSON的設計目標是它應當是盡可能小的,可移植的,文本化的,并且可以作為JavaScript的一個子集。
一個JSON文本是一個標記(token)序列,標記包含6種結構字符,字符串,數字和3個字面量。
結構字符:[ 左中括號,{ 左大括號, ] 右中括號, } 右大擴號,: 冒號,, 逗號。6種結構字符前后都可以添加無意義的空白字符。如:水平制表符 ,換行符 ,回車符
字面量: false,null,true。字面量MUST是小寫的,其他任何字面量都是不允許的。
對象結構表示為一對大括號包裹著0到多個鍵/值對(或者叫成員)。鍵/值對中鍵是一個字符串,后面是一個冒號,用來分隔鍵和值。值后面是一個逗號用來分隔值和下一個鍵/值對的鍵。一個對象內的鍵SHOULD是唯一的。
數組結構表示為一對中括號包裹著0到多個值(或者叫元素)。值之間用逗號分隔。
數字的表示和其他大部分語言相似。數字包含一個以可選的減號為前綴的整數部分,其后面可以跟有小數部分和或指數部分。八進制或者十六進制的形式是不允許的。以0開頭也是不允許的。小數部分是一個小數點后跟隨一位或多位數字。指數部分以不限大小寫的字母E開頭,之后可跟一個加號或減號。E和可選的符號后可跟一位或多位數字。不能被表示為數字的序列(例如,無窮大和NaN)的數字值是不允許的。
字符串用引號作為開頭和結尾。除了以下一些必須被轉義的字符以外所有的Unicode字符都可以直接被放在字符串中:引號(”或’),反斜杠()和控制字符(U+0000 到 U+001F)。
編碼JSON文本SHALL使用unicode編碼。默認的編碼方式為UTF-8。
由于JSON文本的頭兩個字符一定是ASCII字符[RFC0020],因此可以通過觀察第一組4個8位字節來判斷字節流是UTF-8,UTF-16(BE或LE)還是UTF-32(BE或LE)編碼的。
JSON解析器可以將JSON文本轉換為其他表示方法。JSON解釋器MUST能接受符合JSON語法的所有文本。JSON解析器MAY能接受非JSON形式的文本。
生成器JSON生成器能夠生成JSON文本。其生成結果MUST嚴格符合JSON的語法。
IANA(互聯網數字分配機構)方面的考慮JSON文本的MIME媒體類型是application/json。JSON可以用UTF-8,UTF-16和UTF-32編碼表示。如果使用UTF-8,則JSON是8位字節兼容的。如果是UTF-16或UTF-32,則必須使用二進制內容傳輸編碼。
通常,腳本語言都有安全問題,JSON作為JavaScript的一個子集,但由于它排除了分配和調用,所以它是安全的。
JSON發布規范:RFC 4627
Json示例{ "Image": { "Width": 800, "Height": 600, "Title": "View from 15th Floor", "Thumbnail": { "Url": "http://www.example.com/image/481989943", "Height": 125, "Width": "100" }, "tags": [ "小清新", "動物" ] } }參考規范
[ECMA] European Computer Manufacturers Association, “ECMAScript
Language Specification 3rd Edition”, December 1999,
[RFC0020] Cerf, V., “ASCII format for network interchange”, RFC 20,
October 1969.
[RFC2119] Bradner, S., “Key words for use in RFCs to Indicate
Requirement Levels”, BCP 14, RFC 2119, March 1997.
[RFC4234] Crocker, D. and P. Overell, “Augmented BNF for Syntax
Specifications: ABNF”, RFC 4234, October 2005.
原文參考:Json格式定義
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64574.html
摘要:該篇主要以代碼示例為主,因為上不去,看不到這個官方文檔和。因為接下來的底層默認使用的就是。和功能是一致的。區別是不會拋出異常,而會拋出異常。而解析輸入的文本內容依據默認的解析文本的模式。 Json-smart 該篇主要以代碼示例為主,因為google上不去,看不到Json-smart這個官方文檔和API。故只例舉一些代碼示例。因為接下來的Json-path底層默認使用的就是JsonSm...
pygame作為python的一個平臺庫,在做游戲的時候,需要學習的內容還是比較的多的,主要涉及到的內容有相關的學習筆記,包括怎么設置字體,另外還有就是怎么設置其顯示中文呢?下面就給大家詳細解答下。 一、獲得可用字體 importpygame print(pygame.font.get_fonts()) 結果: ['arial','arialblack...
游戲界面,國外的一些游戲,還是以英文為主,那么,國內的游戲,大多覆蓋的是中文字體。那么,我們怎么樣將英文字體修改成為中文,并且能夠正確的顯示出來呢?下面就給大家詳細解答下。 一、獲得可用字體 importpygame print(pygame.font.get_fonts()) 結果: ['arial','arialblack','bahns...
入坑 Python自從進入公司,到現在也有半年的時間。這半年的時間從 python 到入門到開發了幾個小項目,類型涵蓋了web應用 程序、爬蟲程序 (scrapy),python腳本工具,自動化工具。對 python 語言也越來越熟悉,當然也有所感悟和總結。首先 Python 真的讓語言成 了一個工具,入門代價很小,上手能夠開發出小工具,可以更快體驗到編程的樂趣。但是做到pythonic需要更多的...
以下是一些適合個人使用的AI訓練云算力平臺的推薦:Compshare:更適合國內用戶使用的,高性價比云算力平臺,低至1元/小時起。高性能AI算力資源,提供T4/V100S/2080Ti/3090/P40等多種配置GPU,預裝TensorFlow、Pytorch、CUDA等算法框架,開機即用。Amazon EC2:亞馬遜的彈性計算云服務提供了各種實例類型,包括GPU實例,適用于深度學習和機器學習任務...
閱讀 2596·2023-04-25 15:07
閱讀 705·2021-11-24 10:21
閱讀 2298·2021-09-22 10:02
閱讀 3517·2019-08-30 15:43
閱讀 3222·2019-08-30 13:03
閱讀 2287·2019-08-29 17:18
閱讀 3586·2019-08-29 17:07
閱讀 1873·2019-08-29 12:27