可拓展标记语言XML和JSON常用

一、XML文件

可扩展标记语言(eXtensible Markup Language);常用配置文件

特性:

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

XML语法格式 重点

  1. XML文档声明
    必须放在第一行
<?xml version="1.0" encoding="UTF-8"?>

2.标记

开始标记(开放标记): <标记名称> 结束标记(闭合标记): </标记名称> 标记名称: 自定义名称,必须遵循以下命名规则:
1.名称可以含字母、数字以及其他的字符
2.名称不能以数字或者标点符号开始
3.名称不能以字符 “xml”(或者 XML、Xml)开始
4.名称不能包含空格,不能包含冒号(:)
5.名称区分大小写 标记内容: 开始标记与结束标记之间 ,是标记的内容.

3.一个XML文档中, 必须有且且仅允许有一个根标记

正例:
 <names> 
<name>张三</name> 
<name>李四</name>
 </names>
 反例: 
 <name>李四</name> 
 <name>麻子</name>

4.标记可以嵌套, 但是不允许交叉.
5.标记的层级称呼 (子标记, 父标记 , 兄弟标记, 后代标记 ,祖先标记)

例如: 
<persons> 
	<person> 
		<name>李四</name> 
		<length>180cm</length> 
	</person> 
	<person> 
		<name>李四</name> 
		<length>200cm</length> 
	</person> 
</persons>

name是person的子标记,也是person的后代标记。
name是persons的后代标记。
name是length的兄弟标记。
person是name的父标记。
persons是name的祖先标记。
6. 标记名称 允许重复
7. 标记除了开始和结束 , 还有属性.
标记中的属性, 在标记开始时描述, 由属性名和属性值 组成.
格式: 在开始标记中, 描述属性. 可以包含0-n个属性,每一个属性是一个键值对!属性名不允许重复, 键与值之间使用等号连接,多个属性之间使用空格分割。属性值必须被引号引住。
8. 注释
注释不能写在文档文档声明前
注释不能嵌套注释
格式:

 注释开始:   <!--
 注释结束: -->

二、JSON解析

JSON: JavaScript Object Notation

JSON是JS对象简谱,是一种轻量级的数据交换格式

欧洲计算机协会制定的JS规范的子集,完全独立于编程语言,用文本来表示数据

对象格式

用 java、js、XML、JSON描述上述内容:

一本书
书名
简介

java

class Book{
	private String name;
	private String info;
	get/set...
}

	Book b = new Book();
	b.setName("Java核心技术");
	b.setInfo("讲述了Java核心技术的有关内容");

XML

<book>
	<name>Java核心技术</name>
	<info>讲述了Java核心技术的有关内容</info>
</book>

JSON
JS中name和info的引号可以省略,可以是单的也可以是双的,与Java程序员交互时name和info加引号

{
	"name":"Java核心技术",
	"info":"讲述了Java核心技术的有关内容"
}

Gson
来自谷歌
将对象转换为JSON字符串
步骤

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

    public static void main(String[] args) {
        //1.创建Gson对象
        Gson g = new Gson();
        //2.转换
        Book book = new Book(100,"Java核心技术","讲述了Java核心技术的有关内容");
        String s = g.toJson(book);//传入对象转换为相应的Json对象
        System.out.println(s);
    }

将JSON字符串转换为对象
步骤

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

代码示例1(转回对象):

    public static void main(String[] args) {
        //1.创建Gson对象
        Gson g = new Gson();
        //2.转换   {"id":100,"name":"Java核心技术","info":"讲述了Java核心技术的有关内容"}
        Book book = g.fromJson("{\"id\":100,\"name\":\"Java核心技术\",\"info\":\"讲述了Java核心技术的有关内容\"}", Book.class);
        System.out.println(book.getId());
        System.out.println(book.getName());
        System.out.println(book.getInfo());
    }

代码示例2(转回集合):

    public static void main(String[] args) {
        //1.创建Gson对象
        Gson g = new Gson();
        //2.转换   {"id":100,"name":"Java核心技术","info":"讲述了Java核心技术的有关内容","page":["封装","继承","多态"]}
        HashMap data = g.fromJson("{\"id\":100,\"name\":\"Java核心技术\",\"info\":\"讲述了Java核心技术的有关内容\",\"page\":[\"封装\",\"继承\",\"多态\"]}", HashMap.class);
        System.out.println(data.get("id"));
        System.out.println(data.get("name"));
        System.out.println(data.get("info"));
        System.out.println(data.get("page"));
        System.out.println(data.get("page").getClass());
        List page = (List)data.get("page");
        System.out.println(page.get(1));
    }

FastJson
来自阿里
将对象转换为JSON字符串
步骤

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

    public static void main(String[] args) {
        Book book = new Book(100,"Java核心技术","讲述了Java核心技术的有关内容");
        //1.转换
        String s = JSON.toJSONString(book);
        System.out.println(s);
    }

将JSON字符串转换为对象
步骤

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

List<类型> list=JSON.parseArray(JSON字符串,类型.class);
代码示例1(转回对象):

    public static void main(String[] args) {
        //1.转换  {"id":100,"info":"讲述了Java核心技术的有关内容","name":"Java核心技术"}
        Book book = JSON.parseObject("{\"id\":100,\"info\":\"讲述了Java核心技术的有关内容\",\"name\":\"Java核心技术\"}", Book.class);
        System.out.println(book.getId());
        System.out.println(book.getName());
        System.out.println(book.getInfo());
    }

代码示例2(转回集合):

    public static void main(String[] args) {
        //1.转换  ["封装","继承","多态"]
        List<String> strings = JSON.parseArray("[\"封装\",\"继承\",\"多态\"]", String.class);
        System.out.println(strings.get(1));
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值