美文网首页我爱编程
数据格式_xml和json

数据格式_xml和json

作者: 果芽软件 | 来源:发表于2018-01-22 21:02 被阅读145次

    一、数据

    数据=含义+值
    30?
    年龄:30
    成绩:30
    天数:30

    一、动手

    1. 写句歌词

    你以为你了解我的全部,那是因为你只关心我的局部

    2. 写一个身份证号

    500235198811051857
    身份证在线查询:身份证在线查询
    身份证含义:公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:

    • 六位数字地址码,
    • 八位数字出生日期码,
    • 三位数字顺序码
    • 一位数字校验码。

    顺序码的奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

    • 按照位数确定位置
    • 按照顺序确定含义
    • 含义是预先定义,没出现再数据中,无法自解释

    3. 写http请求行

    GET http://www.kuaidi100.com/query?type=shentong&postid=3350862539854 HTTP/1.1

    • 按分割符确定位置
    • 按照顺序确定含义
    • 含义是预先定义,没出现再数据中,无法自解释

    4. 写http请求头

    Host: www.kuaidi100.com
    Connection: keep-alive
    Cache-Control: max-age=0
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
    Upgrade-Insecure-Requests: 1

    • 数据中包含:含义和值
    • 一个数据结构:含义(host)+赋值符(:)+值(www.xxx.com)+分割符(\r\n)
    • 含义包含再数据中,不需要预定义,能自解释

    5. 写班级学生信息(xml)

    <!--注释1:申明是xml报文,指名版本和编码-->
    <?xml version="1.0" encoding="UTF-8" ?>
        <class>
            <name>提高班</name>
            <no>1801</no>
            <students>
                <student>
                    <name>宋海娇</name>
                    <sex>女</sex>
                </student>
                <student>
                    <name>毛伟伟</name>
                    <sex>男</sex>
                </student>
            </students>
        </class>
    

    6. 写班级学生信息(json)

    {
      "class": {
        "name": "提高班",
        "no": "1801",
        "students": {
          "student": [
            {
              "name": "宋海娇",
              "sex": "女"
            },
            {
              "name": "毛伟伟",
              "sex": "男"
            }
          ]
        }
      }
    }
    

    7. 将json和xml转成接口规范

    节点 父节点 约束 类型 长度 描述
    class /
    name class 1 String 20 班级名称
    no class 1 String 10 班级编号
    students class 1 学生列表
    student students + 学生
    name student 1 String 20 学生姓名
    sex student 1 String 1 性别

    8. 接口规范、xml、json互转

    1. 看着xml,写json和接口规范
    2. 看着json,写xml和接口规范
    3. 看着接口规范,写xml和json

    9. 在线xml和json格式化和互转

    1. 将xml或json格式化


      image.png
    image.png
    1. 将xml和json互转


      image.png

    以http报文格式为例

    HTTP/1.1 200 OK
    Server: nginx
    Date: Mon, 22 Jan 2018 12:11:32 GMT
    Content-Type: text/html;charset=UTF-8
    Connection: keep-alive
    Vary: Accept-Encoding
    P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
    Cache-Control: no-cache
    Content-Length: 1286
    
    {
        "message": "ok",
        "nu": "3350862539854",
        "ischeck": "1",
        "condition": "F00",
        "com": "shentong",
        "status": "200",
        "state": "3",
        "data": [{
            "time": "2018-01-16 12:46:12",
            "ftime": "2018-01-16 12:46:12",
            "context": "上海市 本人-已签收,感谢您选择申通快递,期待再次为您服务。",
            "location": null
        },{
            "time": "2018-01-15 20:08:52",
            "ftime": "2018-01-15 20:08:52",
            "context": "金华市 浙江义乌公司(4009266666)-菜鸟面单2-已收件",
            "location": null
        }]
    }
    

    第2章 xml

    1. 样例

    <?xml version="1.0" encoding="UTF-8"?>
    <note>
      <to>Tove</to>
      <from>Jani</from>
      <heading>Reminder</heading>
      <body>Don't forget me this weekend!</body>
    </note>
    

    2. xml和html的异同

    1. XML 被设计用来传输和存储数据,其焦点是数据的内容。
    2. HTML 被设计用来显示数据,其焦点是数据的外观。
    

    3. 树形结构

    [图片上传失败...(image-99d180-1516626095977)]

    4. 语法

    1. xml声明
    2. 根元素
    3. 所有元素必须关闭
    4. 注释
    <?xml version="1.0" encoding="UTF-8"?>
    <note>
      <to>Tove</to>
      <from>Jani</from>
      <heading>Reminder</heading>
      <!-- This is a comment -->
      <body>Don't forget me this weekend!</body>
    </note>
    

    5. 元素

    1. 属性
    2. 文本
    3. 子元素
    <?xml version="1.0" encoding="UTF-8"?>
    <note>
      <to>Tove</to>
      <from>Jani</from>
      <heading>Reminder</heading>
      <body>Don't forget me this weekend!</body>
    </note>
    

    6. 验证

    1. 添加验证
    2. DTD
    3. Schema
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE note SYSTEM "Note.dtd">
    <note>
      <to>Tove</to>
      <from>Jani</from>
      <heading>Reminder</heading>
      <body>Don't forget me this weekend!</body>
    </note>
    
    <!DOCTYPE note
    [
    <!ELEMENT note (to,from,heading,body)>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body (#PCDATA)>
    ]>
    
    <xs:element name="note">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="to" type="xs:string"/>
    <xs:element name="from" type="xs:string"/>
    <xs:element name="heading" type="xs:string"/>
    <xs:element name="body" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    

    7. 查看

    1. 浏览器
    2. notepad
    3. myeclipse

    第3章 json

    1. 样例

    {
    "sites": [
            { "name":"菜鸟教程" , "url":"www.runoob.com" }, 
            { "name":"google" , "url":"www.google.com" }, 
            { "name":"微博" , "url":"www.weibo.com" }
        ]
    }
    

    2. json和xml的异同

    1. 没有结束标签
    2. 更短
    3. 读写的速度更快
    4. 能够使用内建的 JavaScript eval() 方法进行解析
    5. 使用数组
    6. 不使用保留字
    

    3. json语法

    1. 数据在名称/值对中
    2. 数据由逗号分隔
    3. 大括号保存对象
    4. 中括号保存数组
    
    {
    "sites": [
            { "name":"菜鸟教程" , "url":"www.runoob.com" }, 
            { "name":"google" , "url":"www.google.com" }, 
            { "name":"微博" , "url":"www.weibo.com" }
        ]
    }
    

    第4章 xml和json互转

    在线xml和json互转工具

    总结

    编号 类型 格式 样例
    01 数据含义一体 无格式 你好,请问你爱装逼吗?
    02 有规律数据 位置决定含义 1、位置:身份证号码500234198811051876,2:、分隔符:HTTP/1.1 200 OK
    03 键值对 含义+赋值符+数据+分隔符 1、name=张三&age=23;2、"status": "200",
    04 xml 含义+数据+层级
    05 json 含义+数据+层级

    相关文章

      网友评论

        本文标题:数据格式_xml和json

        本文链接:https://www.haomeiwen.com/subject/wpnlaxtx.html