Json语法理解

JSON官方说明:https://www.json.org/json-zh.html

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

本质上, JSON是一个基于文本的数据表达格式。

JSON包含两种基本数据结构:

(1)无序的键值对集合(A collection of name/value pairs)

  键值对集合,Json中称之为对象(Object)

  一个键值对包含key和value,之间通过冒号(:)分割。

  key使用使用双引号引起来的字符串表示。value可以是:

  • 双引号括起来的字符串(string)
  • 数值(number)
  • true
  • false
  • null
  • 对象(object)
  • 数组(array)

  

  键值对的集合以 { 开始,以 } 结束,键值对之间使用 逗号 分隔。

  

  样例:

     { "name" : "tom",  "age" :18}

   在不同的编程语言中,Json的 键值对集合 被解析成对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

(2)有序的值列表(An ordered list of values)

   Json中称之为数组(array)。

   一个数据以 [ 开始、以 ] 结束,中间包含多个 value,value之间通过 逗号 分隔。

   如(1)中描述,value的类型可以是字符串、数值、true、false、null、object、array。

   

   样例:

      ["tom", "nicel", "liya"]

(3) value的嵌套

   如上所属,value字段可以是object、或数组(array)。称之为嵌套。如:

   如下样例中

   (a)Json文件包含1个键值对集合。这个集合中只有1个键值对,key是“person”,value是个数组。

   (b)数组包含3个value。每个value又是 1个 键值对集合(object)。

    {
       "person": [
           {
               "name": "tom",
                "age": 15,
                "Gender": "Male"
           },
          {
                "name": "nicel",
                "age": 21,
                "Gender": "Male"
          },
          {
                "name": "liya",
                "age": 19,
                "Gender": "Female"
           },
      }

    

(4)Json中字符串、数值的取值范围

字符串(string)与C或者Java的字符串非常相似。是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。
一个字符(character)即一个单独的字符串(character string)。  

   

  

数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。   

    

  

(5)空白符

空白可以加入到任何符号之间。

    

原文地址:https://www.cnblogs.com/yickel/p/12891184.html