java中利用fastjson解析json
json数据
{"uuid": [{"name": "史子峻","age": "24","iphone":"17812524783","youxiang":"1003249945@qq.com"},{"name": "郭青青","age": "24","iphone":"17812524783","youxiang":"1003249945@qq.com"},{"name": "刘诗君","age": "22","iphone":"17812524783","youxiang":"1003249945@qq.com"}],"user": {"name": "孙巍","age": "28","id": "007"},"name": "娜姐","age": "18","sex": "女"}
我们利用在线解析json功能,去接续这行json
"uuid": [
{
"name": "史子峻",
"age": "24",
"iphone": "17812524783",
"youxiang": "1003249945@qq.com"
},
{
"name": "郭青青",
"age": "24",
"iphone": "17812524783",
"youxiang": "1003249945@qq.com"
},
{
"name": "刘诗君",
"age": "22",
"iphone": "17812524783",
"youxiang": "1003249945@qq.com"
}
],
"user": {
"name": "孙巍",
"age": "28",
"id": "007"
},
"name": "娜姐",
"age": "18",
"sex": "女"
通过解析我们可以清楚的看到我们的数据分层和结构总共有五层分别是
“uuid”,“user”,“name”,“age”,“sex”
其中有两层是多层结构分别是:“uuid”,“user”,我们需要针对这两层多建两个标准类,
其中所有的标准类都要通过generate创建get,set,和toString方法
第一层的解析
package yuchuli;
import java.util.Arrays;
/**
* 第一层的解析
*/
public class beanjson {
//单层的json直接将他的key上去就行
private String name;
private String age;
private String sex;
//多层的json还要联合解析
private String uuid;
private String user;
@Override
public String toString() {
return "beanjson{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
", sex='" + sex + '\'' +
", uuid='" + uuid + '\'' +
", user='" + user + '\'' +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
}
第一层user的联合解析
package yuchuli;
/**
* 联合解析
*/
public class user {
private String name;
private String age;
private String id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return "user{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
", id='" + id + '\'' +
'}';
}
public user(String name, String age, String id) {
this.name = name;
this.age = age;
this.id = id;
}
}
第一层uuid的联合解析
package yuchuli;
public class uuid {
private String name;
private String age;
private String iphone;
private String youxiang;
@Override
public String toString() {
return "uuid{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
", iphone='" + iphone + '\'' +
", youxiang='" + youxiang + '\'' +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getIphone() {
return iphone;
}
public void setIphone(String iphone) {
this.iphone = iphone;
}
public String getYouxiang() {
return youxiang;
}
public void setYouxiang(String youxiang) {
this.youxiang = youxiang;
}
}
最终的解析
package yuchuli;
import com.alibaba.fastjson.JSON;
import java.io.BufferedReader;
import java.io.FileReader;
/**
* 封装的那个标准类
*
*/
public class bean {
public static void main(String[] args)throws Exception {
//将数据导入 导包抛异常
BufferedReader br = new BufferedReader(new FileReader("data/json/movie.json"));
//读取一行
String line = br.readLine();
beanjson beanjson = JSON.parseObject(line, beanjson.class);
System.out.println(beanjson);
}
}
解析成果
beanjson{name='娜姐', age='18', sex='女', uuid='[{"name":"史子峻","iphone":"17812524783","age":"24","youxiang":"1003249945@qq.com"},{"name":"郭青青","iphone":"17812524783","age":"24","youxiang":"1003249945@qq.com"},{"name":"刘诗君","iphone":"17812524783","age":"22","youxiang":"1003249945@qq.com"}]', user='{"name":"孙巍","id":"007","age":"28"}'}