前后端通信中的 XML、JSON(浅谈)

一、XML

  • 简介:

    • XML 是一种数据交互格式,特定格式的字符串; 虽然可以传输、存储 复杂数据,但是其解析过于复杂并且体积较大: 使用 XML进行数据交互,需要先将 XML 解析成 DOM文档,再从中提取数据;相对而言,JSON更简单,应用更广泛

    • XML 是一种可扩展的标记语言,需要申明当前文档是xml格式;很类似 HTML

  • 设计初衷:

    • XML 的设计初衷是 传输、存储数据;有别于 HTML,HTML的设计初衷是 显示数据

    • XML 也可以运行在浏览器上,浏览器 会默认以html格式解析

  • 语法 特点:

    • XML 的语法 非常严格: 区分英文大小写;不会忽略空格、换行

    • 必须有文档声明: <?xml version="1.0" encoding="GBK"?>

    • 必须有 且 仅有一个根标签:

    • 需要自行定义标签 且必须有结束标签: XML 标签没有被预定义

    • 注释: 不能写在顶部;注释语法为 <!--这是注释-->

    • 属性: 属性值一定要用 引号(单引号、双引号) 括起来;且元素中 属性不能重复

二、JSON

  • 简介:

    • JSON 是另一种 轻量级的文本数据交互格式,独立于语言

    • 形式: 对象 { };数组 [ ]

  • 语法 特点:

    • key-value 形式: 键名必须用双引号括起来;值是字符串的话必须用双引号括起来

    • 每个键值对之间,用 逗号隔开

    • JSON体积小、解析方便且高效

  • JSON 值可以是:

    • 数字(整数或浮点数)
    • 字符串(在双引号中)
    • 布尔值(true 或 false)
    • 数组(在方括号中)
    • 对象(在花括号中)
    • null
  • 文本数据交互规则:

    • JSON数据 在不同语言进行传输时,类型为字符串;不同的语言 各自有对应有解析方法,需要解析完成后才能读取

    • 以json格式传输数据时,要求响应内容格式是 application/json (也可以不设置,但是这遵循的一个规范)

三、 JSON 解析

应用场景
  • JSON 在不同语言间的数据交互 很受欢迎;不同语言间传输时,JSON需要转成字符串类型,不同的语言 各自有对应有解析方法,需要解析完成后才能读取
Javascript 解析方法
  • 解析方法 依赖于:

    • JS中的 JSON 内置对象(ECMAScript5 定义的)

    • 低版本IE中,不存在JSON 内置对象,可引入 json2.js 插件 解决问题

  • 序列化: js中的 Object 转化为 JSON字符串

    • 实现方式:

      • JSON.stringify(obj) 【最佳】

      • obj.toJSONString()

  • 反序列化: js中 JSON字符串 转化为 Object

    • 实现方式:

      • JSON.parse(data) 【最佳】

      • data.parseJSON()

      • eval("("+data+")"):【最早期的解析方法】由于json是以”{}”的方式来开始以及结束的,JS中会被当做一个语句处理

PHP 解析方法
  • json_encode():译成公共样式的 php数组/对象 转成 JSON字符:传给前端才能用

  • json_decode(json字符,true): 解析成 PHP 能使用的数据格式

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值