• 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)空白符

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

        

  • 相关阅读:
    Unity3D串口处理
    Crixalis's Equipment 杭电 (设计贪心算法,比较巧妙,我用的是结构体排序)
    杭电 看归并排序和快速排序
    杭电acm 排名 (涉及到结构体排序)
    程序在计算机的内存(看到了一篇博客,解决了我的疑惑)
    贪心算法and排序 杭电一题的启发
    辗转相除法 杭电acm
    单调队列
    用栈的思想处理字符串倒置问题更清晰
    VS的哪些事儿之二
  • 原文地址:https://www.cnblogs.com/yickel/p/12891184.html
Copyright © 2020-2023  润新知