1.javaBean对象与json互转
User user1 = new User();
user1.setAge(18);
user1.setName("Tom");
//javaBean对象转json串
String user1Json = JSON.toJSONString(user1);
System.out.println("user1Json: " + user1Json);
//输出:
user1Json: {"age":18,"name":"Tom"}
//json串转javaBean对象
User jsonUser1 = JSON.parseObject(user1Json, User.class);
System.out.println("jsonUser1: " + jsonUser1);
//输出:
jsonUser1: User [name=Tom, age=18]
2.javaBean组对象与json串互转
// 构建用户对象数组
User[] users = new User[2];
users[0] = guestUser;
users[1] = rootUser;
// javaBean组对象转json串
String jsonString2 = JSON.toJSONString(users);
System.out.println("jsonString2: " + jsonString2);
//输出:
jsonString2: [{"age":35,"name":"guest"},{"age":0,"name":"root"}]
// JSON串转用户组对象
UserGroup group2 = JSON.parseObject(jsonString, UserGroup.class);
System.out.println("group2: " + group2);
//输出:
group2: UserGroup [name=admin, users=[User [name=guest, age=35], User [name=root, age=0]]]
3.javaBean对象数组与json串互转
// 构建用户对象数组
User[] users = new User[2];
users[0] = guestUser;
users[1] = rootUser;
// 用户对象数组转JSON串
String jsonString2 = JSON.toJSONString(users);
System.out.println("jsonString2: " + jsonString2);
//输出:
jsonString2: [{"age":35,"name":"guest"},{"age":0,"name":"root"}]
// JSON串转用户对象列表
List<User> users2 = JSON.parseArray(jsonString2, User.class);
System.out.println("users2: " + users2);
//输出:
users2: [User [name=guest, age=35], User [name=root, age=0]]
4.javaBean List对象与json串互转
User user1 = new User();
user1.setAge(18);
user1.setName("Tom");
User user2 = new User();
user2.setAge(20);
user2.setName("Andi");
//构建用户List对象
List<User> userList = new ArrayList<>();
userList.add(user1);
userList.add(user2);
//用户List对象转json串
String userListJson = JSON.toJSONString(userList);
System.out.println("jsonList字符串:" + userListJson);
//输出:
jsonList字符串:[{"age":18,"name":"Tom"},{"age":20,"name":"Andi"}]
//json串转用户List对象
List<User> jsonUserList = JSON.parseArray(userListJson, User.class);
System.out.println("user1对象:" + jsonUserList.get(0));
System.out.println("user2对象:" + jsonUserList.get(1));
//输出:
user1对象:User [name=Tom, age=18]
user2对象:User [name=Andi, age=20]
5.map对象与json串互转
//map对象转json串
Map<String, String> mapJson = new HashMap<String, String>();
mapJson.put("aa", "11");
mapJson.put("bb", "22");
mapJson.put("cc", "33");
String jsonMapStr = JSON.toJSONString(mapJson);
System.out.println("jsonMapStr: " + jsonMapStr);
//输出:
jsonMapStr: {"aa":"11","bb":"22","cc":"33"}
// json字符串转map对象
String o = "{'area': {'area': '1','pagetype': 'home'},'pagetype': 'home'}";
Map map = (Map) JSONObject.parseObject(o).get("area");
System.out.println("area: " + map.get("area"));
//输出:
area: 1
6.json对象输出为json串
// json对象转json字符串;与map对象转json字符串类似
JSONObject json = new JSONObject();
json.put("aa", "11");
json.put("bb", "22");
json.put("cc", "33");
String jsonStr = json.toString();
System.out.println("jsonStr: " + jsonStr);
//输出:
jsonStr: {"aa":"11","bb":"22","cc":"33"}
7.json通过TypeReference转为需要的类型
//TypeReference可以指定需要反序列化的类型
String o = "{'area': {'area': '1','pagetype': 'home'},'pagetype': 'home'}";
// 通过TypeReference指定反序列化的类型来实现json到相应类型对象的转换
// 该json格式字符串对象被转换为了指定的Map<String, Object>对象
Map<String, Object> userMap = JSON.parseObject(o, new TypeReference<Map<String, Object>>() {
});
System.out.println((userMap.get("area")));
//输出:
area: {"area":"1","pagetype":"home"}
完整示例代码如下:
package simcs.web;
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.JSONObject;
import com.alibaba.fastjson.TypeReference;
class User {
private String name;
private int age;
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;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
class UserGroup {
private String name;
private List<User> users = new ArrayList<User>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
@Override
public String toString() {
return "UserGroup [name=" + name + ", users=" + users + "]";
}
}
public class FastjsonDemo {
public static void main(String[] args) {
// 构建用户geust
User guestUser = new User();
guestUser.setName("guest");
guestUser.setAge(28);
String userJson = JSON.toJSONString(guestUser);
System.out.println("userJson: " + userJson);
System.out.println();
// jsonString转对象
User jsonUser = JSON.parseObject(userJson, User.class);
System.out.println("jsonUser: " + jsonUser);
System.out.println();
// 构建用户root
User rootUser = new User();
rootUser.setName("root");
guestUser.setAge(35);
// 构建用户组对象
UserGroup group = new UserGroup();
group.setName("admin");
group.getUsers().add(guestUser);
group.getUsers().add(rootUser);
// 用户组对象转JSON串
String jsonString = JSON.toJSONString(group);
System.out.println("jsonString: " + jsonString);
System.out.println();
// JSON串转用户组对象
UserGroup group2 = JSON.parseObject(jsonString, UserGroup.class);
System.out.println("group2: " + group2);
System.out.println();
// 构建用户对象数组
User[] users = new User[2];
users[0] = guestUser;
users[1] = rootUser;
// 用户对象数组转JSON串
String jsonString2 = JSON.toJSONString(users);
System.out.println("jsonString2: " + jsonString2);
// JSON串转用户对象列表
List<User> users2 = JSON.parseArray(jsonString2, User.class);
System.out.println("users2: " + users2);
System.out.println();
// json对象转json字符串;与map对象转json字符串类似
JSONObject json = new JSONObject();
json.put("aa", "11");
json.put("bb", "22");
json.put("cc", "33");
String jsonStr = json.toString();
System.out.println("jsonStr: " + jsonStr);
System.out.println();
Map<String, String> mapJson = new HashMap<String, String>();
mapJson.put("aa", "11");
mapJson.put("bb", "22");
mapJson.put("cc", "33");
String jsonMapStr = JSON.toJSONString(mapJson);
System.out.println("jsonMapStr: " + jsonMapStr);
// json字符串转map对象
String o = "{'area': {'area': '1','pagetype': 'home'},'pagetype': 'home'}";
Map map = (Map) JSONObject.parseObject(o).get("area");
System.out.println("area: " + map.get("area"));
System.out.println();
// 通过TypeReference指定反序列化的类型来实现json到相应类型对象的转换
// 该json格式字符串对象被转换为了指定的Map<String, Object>对象
Map<String, Object> userMap = JSON.parseObject(o, new TypeReference<Map<String, Object>>() {
});
System.out.println("area: " + (userMap.get("area")));
User user1 = new User();
user1.setAge(18);
user1.setName("Tom");
String user1Json = JSON.toJSONString(user1);
System.out.println("user1Json: " + user1Json);
User jsonUser1 = JSON.parseObject(user1Json, User.class);
System.out.println("jsonUser1: " + jsonUser1);
User user2 = new User();
user2.setAge(20);
user2.setName("Andi");
List<User> userList = new ArrayList<>();
userList.add(user1);
userList.add(user2);
String userListJson = JSON.toJSONString(userList);
System.out.println("jsonList字符串:" + userListJson);
System.out.println();
List<User> jsonUserList = JSON.parseArray(userListJson, User.class);
System.out.println("user1对象:" + jsonUserList.get(0));
System.out.println("user2对象:" + jsonUserList.get(1));
}
}