Java接收xml/json类型数据的处理

接收的数据

包括姓名 年龄 性别 系别四条信息

xml文件压缩 xml转json json压缩并转义的网址

xml文件压缩网址 点击下图压缩按钮即可
点击压缩即可 xml转成json网址
在这里插入图片描述 json压缩并转义网址
在这里插入图片描述
压缩是为了赋值给字符串方便做处理
转义是因为json中有引号 引号如果想赋值给字符串 需要在其前加转义字符\

处理接收的数据

代码结构:

在这里插入图片描述
Student类用作保存所得到的信息
Main类用作处理xml压缩后的信息
Main1类用作处理json压缩并转义后的信息

代码:

Student.java:

public class Student {
    
    
   private String name;
   private int age;
   private String sex;
   private String dept;
	public String getName() {
    
    
		return name;
	}
	public void setName(String name) {
    
    
		this.name = name;
	}
	public int getAge() {
    
    
		return age;
	}
	public void setAge(int age) {
    
    
		this.age = age;
	}
	public String getSex() {
    
    
		return sex;
	}
	public void setSex(String sex) {
    
    
		this.sex = sex;
	}
	public String getDept() {
    
    
		return dept;
	}
	public void setDept(String dept) {
    
    
		this.dept = dept;
	}
	public Student() {
    
    
		super();
	}
	public String toString() {
    
    
		return "Student [age=" + age + ", dept=" + dept + ", name=" + name
				+ ", sex=" + sex + "]";
	}  
}

Main.java:

public class Main {
    
    
   public static void main(String[] args) {
    
    
	   String str="<message><body><name>王艳</name><age>18</age><sex>女</sex><dept>计算机</dept></body></message>";
	   String s=str.replace("<message><body>", "");
	   String s1=s.replace("</body></message>", "");
	   String s2=s1.replace("</name>", "");
	   String s3=s2.replace("</age>", "");
	   String s4=s3.replace("</dept>", "");
	   String s5=s4.replace("</sex>", "");
	   String s6[]=s5.split("<");
	   String s7[]={
    
    s6[1],s6[2],s6[3],s6[4]};
	   Student stu=new Student();
	   System.out.println(stu);
	   for(int i=0;i<s7.length;i++){
    
    
		  String s8[]=s7[i].split(">");
		  if(s8[0].equals("name")){
    
    
			  stu.setName(s8[1]);
		  }
		  else  if(s8[0].equals("age")){
    
    
			  int age=Integer.parseInt(s8[1]);
			  stu.setAge(age);
		  }
		  else  if(s8[0].equals("sex")){
    
    
			  stu.setSex(s8[1]);
		  }
		  else  if(s8[0].equals("dept")){
    
    
			  stu.setDept(s8[1]);
		  }
	   }
	   System.out.println(stu);
   }
}

Main1.java:

public class Main1 {
    
    
   public static void main(String[] args) {
    
    
	String str = "{\"message\":{\"body\":{\"name\":\"王艳\",\"age\":\"18\",\"sex\":\"女\",\"dept\":\"计算机\"}}}";
	String s1=str.replace("{\"message\":{\"body\":","");
	String s2=s1.replace("{","");
	String s3=s2.replace("}","");
	String s4=s3.replace("\"","");
	String s5[]=s4.split(",");
	Student stu=new Student();
	System.out.println(stu);
	for(int i=0;i<s5.length;i++){
    
    
		String s6[]=s5[i].split(":");
		if(s6[0].equals("name"))
		{
    
    
			stu.setName(s6[1]);
	    }
		else  if(s6[0].equals("age")){
    
    
			  int age=Integer.parseInt(s6[1]);
			  stu.setAge(age);
		 }
		  else  if(s6[0].equals("sex")){
    
    
			  stu.setSex(s6[1]);
		  }
		  else  if(s6[0].equals("dept")){
    
    
			  stu.setDept(s6[1]);
		  }
		
	}
	System.out.println(stu);
 }
}

思路

用到的字符串方法

replace("oldchar","");//返回去掉oldchar的新字符串
split("char")//以char分割字符串 返回分割后的字符串数组

xml处理

数据为:

<message><body><name>王艳</name><age>18</age><sex></sex><dept>计算机</dept></body></message>

处理顺序:

1.去掉前后无用数据:<message><body> </dept></body></message>
 变成:<name>王艳</name><age>18</age><sex></sex><dept>计算机
2.去掉右半标签对:</name> </age> </sex> 
 变成:<name>王艳<age>18<sex><dept>计算机
3.以左尖括号分割
 变成字符串数组:name>王艳 age>18 sex>女 dept>计算机
 其中第一个字符串分割的是一个空字符串 直接将后面几个字符串赋给一个新字符串数组即可
4.以右尖括号分割
 变成字符串数组:name 王艳 
               age 18 
               sex 女 
               dept 计算机
5.取值 如果字符串数组下标为0的内容为name 则下标为1的内容赋值给student对象.name即可
      其他属性同理

json处理

数据为:

{
    
    \"message\":{
    
    \"body\":{
    
    \"name\":\"王艳\",\"age\":\"18\",\"sex\":\"女\",\"dept\":\"计算机\"}}}

处理顺序:

1.去掉前面无用数据: {
    
    \"message\":{
    
    \"body\":
 变成:{
    
    \"name\":\"王艳\",\"age\":\"18\",\"sex\":\"女\",\"dept\":\"计算机\"}}}
2.去掉 {
    
     } /
 变成:name:王艳,age:18,sex:,dept:计算机
3.以逗号分割
 变成:name:王艳
	  age:18
	  sex:女
	  dept:计算机
4.以冒号分割 
   变字符串数组:name 王艳 
               age 18 
               sex 女 
               dept 计算机
5.取值 如果字符串数组下标为0的内容为name 则下标为1的内容赋值给student对象.name即可
      其他属性同理

猜你喜欢

转载自blog.csdn.net/qq_43760243/article/details/115297278