layout: post
title: 使用fastjson對JSON、實體類书幕、列表轉(zhuǎn)換
subtitle: 使用fastjson對JSON新荤、實體類、列表轉(zhuǎn)換
date: 2018-11-3
author: LY
header-img: img/post-bg-debug.png
catalog: true
tags:
- java
- ajax
- JSON
在這里小小推薦下我的個人博客
csdn:雷園的csdn博客
個人博客:雷園的個人博客
簡書:雷園的簡書
某寶優(yōu)惠:優(yōu)惠網(wǎng)站
使用fastjson對JSON台汇、實體類苛骨、列表轉(zhuǎn)換
導(dǎo)入jar包或者使用maven添加依賴
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.49</version>
</dependency>
首先我們來寫一個帶有列表的實體類:
package com.entity;
import java.util.List;
public class Teacher {
private String id;
private String name;
private String info;
private List<Student> studentList;
public static class Student {
private String id;
private String name;
private String student_num;
@Override
public String toString() {
return "Student{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", student_num='" + student_num + '\'' +
'}';
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStudent_num() {
return student_num;
}
public void setStudent_num(String student_num) {
this.student_num = student_num;
}
public Student(String id, String name, String student_num) {
this.id = id;
this.name = name;
this.student_num = student_num;
}
}
@Override
public String toString() {
return "Teacher{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", info='" + info + '\'' +
", studentList=" + studentList +
'}';
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
public List<Student> getStudentList() {
return studentList;
}
public void setStudentList(List<Student> studentList) {
this.studentList = studentList;
}
public Teacher(String id, String name, String info, List<Student> studentList) {
this.id = id;
this.name = name;
this.info = info;
this.studentList = studentList;
}
}
你收到的JSON數(shù)據(jù)格式如下
{
"id":"1",
"name":"your_name",
"info":"你是一個好老師",
"studentList":[
{
"id":"1",
"name":"student_name1",
"student_num":"134233721"
},
{
"id":"2",
"name":"student_name2",
"student_num":"134233722"
},
{
"id":"3",
"name":"student_name3",
"student_num":"134233723"
},
{
"id":"4",
"name":"student_name4",
"student_num":"134233724"
}
]
}
接下來進(jìn)行格式轉(zhuǎn)換
package com.controller;
import com.alibaba.fastjson.JSON;
import com.leiyuan.entity.Teacher;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/test")
public class TestController {
/**
* 在這里進(jìn)行轉(zhuǎn)換
*
* @param json 假設(shè)json為請求參數(shù)
*/
@RequestMapping(value = "/transJson", method = RequestMethod.POST)
public void transJson(@RequestBody String json) {
System.out.println("原始數(shù)據(jù)==========" + json);
// 轉(zhuǎn)化為teacher實體類
Teacher teacher = JSON.parseObject(json, Teacher.class);
System.out.println("轉(zhuǎn)換為teacher實體類==========" + teacher.toString());
// 對teacher實體類中的studentList進(jìn)行轉(zhuǎn)換
}
}
輸出結(jié)果如下
原始數(shù)據(jù)=========={
"id":"1",
"name":"your_name",
"info":"你是一個好老師",
"studentList":[
{
"id":"1",
"name":"your_name",
"student_num":"134233721"
},
{
"id":"2",
"name":"your_name",
"student_num":"134233722"
},
{
"id":"3",
"name":"your_name",
"student_num":"134233723"
},
{
"id":"4",
"name":"your_name",
"student_num":"134233724"
}
]
}
轉(zhuǎn)換為teacher實體類==========Teacher{id='1', name='your_name', info='你是一個好老師', studentList=[Student{id='1', name='your_name', student_num='134233721'}, Student{id='2', name='your_name', student_num='134233722'}, Student{id='3', name='your_name', student_num='134233723'}, Student{id='4', name='your_name', student_num='134233724'}]}
如何將實體類轉(zhuǎn)換為JSON數(shù)據(jù)?
// 直接調(diào)用如下方法
JSON.toJSONString(your_class);