XML 可拓展标记语言

2023-05-04 19:13:48 浏览数 (1)

XML 可拓展标记语言

是一种简单的数据存储语言、

格式

代码语言:javascript复制
<?xml version="1.0" encoding="UTF-8">//xml声明
<books id="h1">//根元素
    <book>//标签
        <author>北大青鸟</author>
        <title>java从入门到入土</title>   
    </book>
</books>

标签必须成对出现

xml中特殊字符串的处理

&lt;

<

小于

&gt;

>

大于

&amp;

&

和号

&apos;

'

单引号

&quot;

"

引号

xml注释

<!---->

使用DTD正XML文档

DTD 文档类型定义的缩写

元素的定义规则、元素之间的关系规则、属性的定义规则

使没个xml文件可以携带一个自身格式的描述

不同组织的人可以通过通用DTD来交换数据

使用Schema验证xml文档

改进了DTD的晦涩语法、缺乏数据类型、封闭的内容模型

`特点:

xml与操作系统、变成语言的开发平台无关

作用:数据交互

JSON

JavaScript Object Notation(JavaScript 对象表示法)

JSON 是存储和交换文本信息的语法,类似 XML。

JSON 比 XML 更小、更快,更易解析。

JSON 语法规则

JSON 语法是 JavaScript 对象表示语法的子集。

数据在名称/值对中

数据由逗号分隔

大括号 {} 保存对象

中括号 [] 保存数组,数组可以包含多个对象

代码语言:javascript复制
`"s`ites": [`
   `{ "name":"菜鸟教程" , "url":"www.runoob.com" },` 
   `{ "name":"google" , "url":"www.google.com" },` 
   `{ "name":"微博" , "url":"www.weibo.com" }`
   ]`

与 XML 相同之处

  • JSON 是纯文本
  • JSON 具有"自我描述性"(人类可读)
  • JSON 具有层级结构(值中存在值)
  • JSON 可通过 JavaScript 进行解析
  • JSON 数据可使用 AJAX 进行传输

与 XML 不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字‘
  • 最大的不同是XML 需要使用 XML 解析器来解析,JSON 可以使用标准的 JavaScript 函数来解析。

JSON 值

JSON 值可以是:

数字(整数或浮点数) { "age":30 }

字符串(在双引号中){ "age":“30” }

逻辑值(true 或 false){ "flag":true }

数组(在中括号中)

代码语言:javascript复制
    "sites": [
        { "name":"菜鸟教程" , "url":"www.runoob.com" }, 
        { "name":"google" , "url":"www.google.com" }, 
        { "name":"微博" , "url":"www.weibo.com" }
        ]

对象(在大括号中)

代码语言:javascript复制
{ "name":"菜鸟教程" , "url":"www.runoob.com" }

null,

代码语言:javascript复制
{ "runoob":null }

访问

sites[0].name;

修改,sites[0].name="菜鸟教程";

使用fastjson来处理json

代码语言:javascript复制
// 把JSON文本parse为JSONObject或者JSONArray
public static final Object parse(String text);
// 把JSON文本parse成JSONObject 
public static final JSONObject parseObject(String text); 
 // 把JSON文本parse为JavaBean
public static final <T> T parseObject(String text, Class<T> clazz);
// 把JSON文本parse成JSONArray
public static final JSONArray parseArray(String text); 
//把JSON文本parse成JavaBean集合 
public static final <T> List<T> parseArray(String text, Class<T> clazz); 
// 将JavaBean序列化为JSON文本 
public static final String toJSONString(Object object); 
// 将JavaBean序列化为带格式的JSON文本 
public static final String toJSONString(Object object, boolean prettyFormat); 
//将JavaBean转换为JSONObject或者JSONArray。
public static final Object toJSON(Object javaObject); 
代码语言:javascript复制
// 1.测试将一个【对象】转换成【json字符串】
String jsonString = JSONObject.toJSONString(new Student("中国",66));
System.out.println("********测试将一个【对象】转换成【json字符串】********");
System.out.println(jsonString);
​
// 2.测试将一个【json字符串】转换成【对象】
Student person1 = JSONObject.parseObject(jsonString, Student.class);
System.out.println("********测试将一个【json字符串】转换成【对象】********");
System.out.println(person1);
​
// 3.测试将【多个对象】转换成【json字符串数组】
String jsonString1 = JSONArray.toJSONString(Arrays.asList(new Student("测试2",19), new Student("测试3", 20)));
System.out.println("********测试将【多个对象】转换成【json字符串数组】********");
System.out.println(jsonString1);
​
// 4.测试将【josn字符串数组】转换成多个对象
List<Student> people = JSONArray.parseArray(jsonString1, Student.class);
System.out.println("********测试将【josn字符串数组】转换成多个对象********");
System.out.println(people);
​

0 人点赞