XML与Json

XML:

XML(eXtensible Markup Language)是一种可拓展标记语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
特性:

  • xml具有平台无关性, 是一门独立的标记语言.
  • xml具有自我描述性

优点:

  • 格式统一
  • 数据共享方便,容易和其他系统远程交互

缺点:

  • 体积大
  • 传输慢
  • 解析不方便
<?XML version="1.0" encoding="UTF-8"?>

<books>
    <book>
        <name>至暗时代</name>
        <info>丘吉尔的历史</info>
    </book>
    <book>
        <name>追风筝的人</name>
        <info>为你千千万万遍</info>
    </book>
</books>

语法格式:
开始标记:<标记名称>
结束标记:</标记名称>
标识名称:
- 名称里可以带有子母、数字以及其他字符
- 名称不能以数字和标点符号开始
- 名称不能以字符XML、xml开始
- 名称不能包含空格,不能包含冒号(😃
- 名称明确区分大小写
格式:
标记可以嵌套,不能交叉 如:123hahaha
标记的层级称呼:子标记,父标记,兄弟标记
标记名称可以重复
标记中的属性,可以有0-n个属性,每个属性都是一个键值对,属性名不能重复,多个属性之间要用空格分开,属性值必须用引号引住 如:

解析的步骤:

  • 获取输入流
  • 创建XML读取对象
  • 读取并得到文档对象
  • 通过文档获取根元素
  • 开始解析元素
  • 操作!!!

在Java中生成XML:

  • 通过文档帮助器 (DocumentHelper) , 创建空的文档对象
  • 通过文档对象,向其中添加根节点
  • 通过根节点对象root,丰富子节点
  • 创建一个文件输出流,用于存储XML文件
  • 将文件输出流,转化为XML文档输出流
  • 写出文档
  • 释放资源

JSON

JSON(JavaScript Object Notation)名字里有JavaScript,但是它跟JavaScript一点关系都没有,一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。

特性:
现有阶段,大部分XML文件使用的解析方式都是引用了JSON,JSON文档声明其目的是"使用20%的精力去解决80%JAVA\XML的问题",在Java中的对象能快速的转化为JSON格式的字符串、JSON格式的字符串能快速转化为Java的对象

优点:

  • 大量的使用JAVA集合类,方便了Java开发人员
  • 易于系统解析,支持多种语言
  • 使用了具体的类,而不是接口,简化了DOM的API

缺点:

  • 没有较好的灵活性
  • 性能不是那么优异
{
    "name":"张三",
    "age":20,
    "friend":["麻子""小黑",{
            "age"=20,18
    }],
    "haha"{
        "name":"哈哈哈",
        "info":"emmmm"
    }
}

语法格式:
一个对象由一个大括号表示
括号中描述对象的属性
键与值之间用冒号连接,多个键值之间使用逗号分割
键值对的键用引号引住

格式:
对象中可以互相嵌套

解析的步骤
GSON:
将对象转化为字符串

  1. 引入JAR包
  2. 在需要转换JSON字符串的位置编写如下代码即可:
    String json = new Gson().toJSON(要转换的对象);

将字符串转化为对象

  1. 引入JAR包
  2. 在需要转换Java对象的位置, 编写如下代码:
    对象 = new Gson().fromJson(JSON字符串,对象类型.class);

FastJson
将对象转化为JSON字符串

  1. 引入JAR包
  2. 在需要转换JSON字符串的位置编写如下代码即可:
    String json=JSON.toJSONString(要转换的对象);

将JSON字符串转化为对象

  1. 引入JAR包
  2. 在需要转换Java对象的位置, 编写如下代码:
    类型 对象名=JSON.parseObject(JSON字符串, 类型.class);

    List<类型> list=JSON.parseArray(JSON字符串,类型.class);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值