版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37527943/article/details/84952594
导读
1.简介
2.JSON解析
简介
JSON解析
如上图右击复制在项目中的jar包,按图操作便导入了jar包,导入后会多出下图的文件目录,如果想删除,可以右击这个多出来的文件,如图
fastJson解析JSON
Student.java
package com.hala.json;
public class Student {
private int id;
private String name;
private int age;
private String sex;
public Student() {
super();
}
public Student(int id, String name, int age, String sex) {
super();
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + "]";
}
}
TestJson.java
package com.hala.json;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class TestJson {
public static void main(String[] args) {
// TODO Auto-generated method stub
//json字符串--->Student类对象
//参数一:要转化的字符串
//参数二:要转化成的类的类型 返回值为此类的一个对象
//对这个类的要求:要有无参构造方法,要有属性的get,set方法
String s1="{'id':1,'name':'小明','sex':'男','age':18}";
Student stu=JSON.parseObject(s1, Student.class);
System.out.println(stu);
System.out.println("-------------------------------------------");
//Student类对象--->json字符串
Student stu1=new Student(2,"小花",22,"女");
String s3=JSON.toJSONString(stu1);
System.out.println(s3);
System.out.println("-------------------------------------------");
//json字符串--->List
String s2="[{'id':2,'name':'小红','age':19,'sex':'女'},"
+ "{'id':3,'name':'小白','age':20,'sex':'男'}]";
List<Student> list=JSON.parseArray(s2, Student.class);
for(Student stu2:list){
System.out.println(stu2);
}
System.out.println("-------------------------------------------");
//List--->json字符串
List<Student> list2=new ArrayList<>();
for(int i=0;i<3;i++){
list2.add(new Student(i+1,"demo"+(i+1),23,"男"));
}
System.out.println(JSON.toJSONString(list2));
System.out.println("-------------------------------------------");
//Map--->json字符串
Map<Integer,Student> map=new HashMap<>();
map.put(1, new Student(4,"小王",20,"男"));
map.put(2, new Student(5,"小李",21,"女"));
String s5=JSON.toJSONString(map);
System.out.println(s5);
System.out.println("-------------------------------------------");
//json字符串--->Map
Map<Integer,Student> map1=
(Map<Integer,Student>)JSON.parseObject(s5, Map.class);
System.out.println(map1);
//JSONObject 可以提取其中某些值
JSONObject obj=JSON.parseObject(s1);
System.out.println(obj.get("name"));
//JSONArray 针对数组进行提取
JSONArray array=JSON.parseArray(s2);
System.out.println(array.size());
}
}
输出结果
Student [id=1, name=小明, age=18, sex=男]
-------------------------------------------
{"age":22,"id":2,"name":"小花","sex":"女"}
-------------------------------------------
Student [id=2, name=小红, age=19, sex=女]
Student [id=3, name=小白, age=20, sex=男]
-------------------------------------------
[{"age":23,"id":1,"name":"demo1","sex":"男"},{"age":23,"id":2,"name":"demo2","sex":"男"},{"age":23,"id":3,"name":"demo3","sex":"男"}]
-------------------------------------------
{1:{"age":20,"id":4,"name":"小王","sex":"男"},2:{"age":21,"id":5,"name":"小李","sex":"女"}}
-------------------------------------------
{1={"sex":"男","name":"小王","id":4,"age":20}, 2={"sex":"女","name":"小李","id":5,"age":21}}
小明
2