zoukankan      html  css  js  c++  java
  • urlencoded、json 格式详解

    表单格式详解

    概念

    • urlencoded 格式,又叫 form 格式、x-www-form-urlencoded 格式
    • 它是一种表单格式
     

    组成格式

    • 键值对组成
    • 键和值之间用 :name=poloyy
    • 多个键值对之间用 :name=poloyy&age=19

    实际例子

    浏览器百度搜索

    content-type 可以选择 x-www-form-urlencoded 格式

    JSON 格式详解

    什么是 JSON

    官方解释,太官方了,看看就好

    • JSON 是存储和交换文本信息的语法。类似 XML
    • JSON 比 XML 更小、更快,更容易解析
    • JSON是独立于语言
    • JSON 具有自我描述性,更易理解

    认识 JSON 有四个口诀

    口诀一

    • JSON 有对象、数组两种数据结构
    • 有字符串、数字、逻辑值、空值四种数据类型

    口诀二

    • 用 {} 表示对象
    • 对象是由属性组成的
    • 属性是由键值对组成的
    • 键和值之间用 ; 隔开
    • 属性之间用 , 隔开

    对象栗子:

    {"姓名":"姚明","年龄":38}

    口诀三

    •  [] 表示数组
    • 数组由单独的值组成

    数组栗子:

    ["小鸡","小鸭","小狗"]
    [1,2,3,4]
    [true, false, true]
    [
       {"姓名":"姚明","年龄":38},
       {"姓名":"尧尧","年龄":22}
    ]

    口诀四

    json 数据结构可以相互嵌套

    比如:对象中可再嵌套数组、对象;数组中可再嵌套数组、对象

    嵌套栗子:

    {
      "姓名":"姚明",
      "年龄":38,
      "家禽":["小鸡","小鸭","小狗"]
    }
    [
       {"姓名":"姚明","年龄":38,"nums":[1,2,3]},
       {"姓名":"尧尧","年龄":22,"nums":[1,2]}
    ]

    JSON值的可以是以下几种形式

    • 数字(整数、浮点数)
    • 字符串
    • 逻辑值(true、false)
    • null
    • 对象
    • 数组

    如何用某种数据格式表述以下信息

    栗子一

    我的名字叫polo,年龄35岁,不抽烟

    urlencoded 格式

    name=polo&age=35&smoke=false

    json 格式

    {
      "name" :"polo",
      "age":35,
      "smoke":false
    }

    栗子二

    我的名字叫呱呱,年龄35岁,不抽烟,我有三本书(语文、数学、英语),我的领导是瑶老师,他年龄35岁。我有2个孩子,唧唧5岁,呱呱15岁

    urlencoded 格式

    无法用此格式表述

    json 格式

    {
       "name":"呱呱",
       "age":35,
       "smoke":false,
       "book":["语文","数学","英语"],
       "leader":{
           "name":"yy",
           "age":35,
           "sons":[
                { "name":"唧唧","age":5 },
                { "name":"呱呱","age":15  },
           ]
        }
    }

    博主踩过的坑和注意事项

    first

    {
       "name":"poloyy",
       "age":21,
    }

    这样的 json 格式是会报错的,那么你知道错误在哪里吗?

    坑:

    最后一个属性结尾处不需要跟 , 

    但需要注意的是,数组最后一个元素后面是可以跟 , 的

    second

    • JSON 规定字符集是UTF-8,字符串必须使用 "" ,Object 的也必须使用 "" 
    • 不可以是单引号 '' ,因为用标准库做反序列化的时候会识别不了哦

    third

    {
      "flag":"true"
    }

    这样子写,值是字符串而不是逻辑值哦

  • 相关阅读:
    php中 global 和$GLOBALS有何不同
    perl 使用LDAP模块
    Sqlite和SQLCE在Windows Mobile 6上的性能对比
    Silverlight学习点滴系列(二)
    C#的新特性:自动属性,对象初始化器,和集合初始化器(转载)
    Silverlight学习点滴系列(一)
    Silverlight学习点滴系列(三)
    URL中传递中文参数 以流形式文件上传下载 演变
    C#经典面试题及答案
    C#笔试题目(综合版样题) (转载)
  • 原文地址:https://www.cnblogs.com/poloyy/p/13138536.html
Copyright © 2011-2022 走看看