ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

XML..

2021-07-20 14:00:46  阅读:194  来源: 互联网

标签:XML salary name .. JSON Human com String


XML

基本介绍

xml 可扩展标记语言, 标记:标签  XML通过标签去定义里面的内容

作用:

1作为 一种文件格式 跟.docx类型 可以存储数据,当做小型数据库一样

2用于数据交换,现在用的不是很多,比如一些银行还在使用

3写配置文件:我们需要关注的地方,我们后面的很多框架配置基本上都是xml写的

基本格式

注意点:

1支持标签自定义

2标签不能乱套,即不能随意嵌套

3大小写敏感,即开始标签大写,结束标签也大写

4属性值必须加引导

5XML 可以形成一棵DOM树

xml约束

1. DTD约束,即可以编写一个xxx.dtd文档,在里面写你的约束条件
2. schema:一般在web中的配置文件中常见,比如spring的配置, <bean>
 

特殊符号的处理

比如>、<,在xml中可能不会正确解析格式,需要使用一些符号进行替换!

若有多个这种特殊的符号,可以使用上面的符号一个一个写,但是比较麻烦,所以,我们可以将这种整
体包起来,用CDATA语法!! <![CDATA[" 开始,由 "]]>

注释


<!--你的注释内容-->


xml解析

 

Dom4j的基本使用
 

https://dom4j.github.io/
参考博文:https://www.cnblogs.com/xiuzhublog/p/13731271.html


作为一个独立的框架/工具,以第三方jar的形式存在的,所以在项目中使用的话,需要引入进
来!!!后面凡是需要的第三方jar包,都需要引入进来!
手动copy,后面我们使用maven去管理!!!!!
 

 下载

引进到项目中

 导入后注意观察是否有上面的向右箭头!!!

JSON

信息交换的格式!!
 

1. 能认识JSON格式
2. 会使用解析工具去json,阿里的FastJson,还有别的,比如Gson、hutool(它是一个功能非常全
面的工具集封装,比如操作DB、IO流的读写、解析JSON、加密.........)、Jackson
 

fastjson入口类是com.alibaba.fastjson.JSON,主要的API是JSON.toJSONString,和
parseObject。
 

下载安装
略,同上面的dom4j的下载安装
 

package test02;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TestFastJSON {

public static void main(String[] args) {
String str = "{\"name\":\"zs\",\"time\":\"\",\"age\":10,\"person\":
{\"sex\":\"male\",\"salary\":222.22},\"sites\":[{\"name\":\"菜鸟教程
\",\"url\":\"www.runoob.com\"},{\"name\":\"google\",\"url\":\"www.google.com\"},
{\"name\":\"微博\",\"url\":\"www.weibo.com\"}]}";

JSONObject jsonObject = JSON.parseObject(str);


//todo 1.根据key获取value
Object name = jsonObject.get("name");
//Object name = jsonObject.getString("name");
System.out.println(name);
//todo 2.获取json串中的数组
JSONArray sites = jsonObject.getJSONArray("sites");
//遍历数组
for (int i = 0; i < sites.size(); i++) {
JSONObject jsonArrayObj = sites.getJSONObject(i);
String siteName = jsonArrayObj.getString("name");
String siteUrl = jsonArrayObj.getString("url");
System.out.println(siteName + "," + siteUrl);
} /

/todo 3.拿到一个对象
JSONObject person = jsonObject.getJSONObject("person");
Double salary = person.getDouble("salary");System.out.println(person.getString("sex") + "," + salary);

//todo 4.自动将json串中的值解析出来,封装成一个对象
Human human = JSON.parseObject(str, Human.class);
System.out.println(human);

//todo 6.自动将json串中的值解析出来,转换成一个map
//https://www.cnblogs.com/heqiyoujing/p/9432153.html
Map mapObj = JSONObject.parseObject(str,Map.class);
System.out.println(mapObj);
//=====================================
//将对象、集合、Map转为json字符串
Human p1 = new Human("zaa", 12);
Human p2 = new Human("z22", 12);
Human p3 = new Human("za33", 12);
List<Human> list =new ArrayList<>();
list.add(p1);
list.add(p2);
list.add(p3);
String jsonStr = JSON.toJSONString(p1);
System.out.println(jsonStr);
System.out.println(JSON.toJSONString(list));
Map<String,Human> map = new HashMap<>();
map.put("1001",p1);
map.put("1002",p2);
map.put("1004",p3);
System.out.println(JSON.toJSONString(map));
}
}

 

package test02;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import java.util.Date;


public class Human {
private String name;
private Integer age;
//@JSONField(serialzeFeatures = {SerializerFeature.WriteMapNullValue})
private String time;
public Human() {}
public Human(String name, Integer age) {
this.name = name;
this.age = age;
} p
ublic void setTime(String time) {
this.time = time;
} p
ublic String getTime() {
return time;
} @
JSONField(serialzeFeatures = {SerializerFeature.WriteMapNullValue})
private Double salary;
public String getName() {
return name;
} p
ublic void setName(String name) {
this.name = name;
} p
ublic Integer getAge() {
return age;
} p
ublic void setAge(Integer age) {
this.age = age;
} p
ublic Double getSalary() {
return salary;
} p
ublic void setSalary(Double salary) {
this.salary = salary;
} @
Override
public String toString() {
return "Human{" +
"name='" + name + '\'' +
", age=" + age +
", salary=" + salary +
", date=" + time +
'}';
}
}

JSONField 说明
 

可以通过 @JSONField ,去设置很多信息,比如json串中的key的名字、日期型的格式化、是否序列化.....
 

//这两个可能会用到
String name() default "";
String format() default "";
 

扩展
 

Hutool
https://www.hutool.cn/
详细使用参考官方文档,非常详细!!!!!
 

标签:XML,salary,name,..,JSON,Human,com,String
来源: https://blog.csdn.net/mayaohao/article/details/117766137

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有