接收的数据
包括姓名 年龄 性别 系别四条信息
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即可
其他属性同理