1、将java对象转换为json字符串
public static String beanToJsonStr(){
User user=new User();
JSONObject json = JSONObject.fromObject(user);//将java对象转换为json对象
String str = json.toString();//将json对象转换为字符串
return str;
}
输出结果:
{
"address": "山东青岛",
"name": "晓晓",
"age": 25,
"roles": [{
"roleId": 1,
"roleName": "角色名称"
},
{
"roleId": 2,
"roleName": "角色名称"
},
{
"roleId": 3,
"roleName": "角色名称"
}]
}
2、json字符串转化为java对象
public static String jsonStrToBean(String jsonStr){
JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象
User user = (User)JSONObject.toBean(obj,User.class);//将建json对象转换为Person对象
return user.toString();
}
输出结果
User{name='晓晓', age=25, address='山东青岛', roles=[net.sf.ezmorph.bean.MorphDynaBean@6d7b4f4c[
{roleId=1, roleName=角色名称}
], net.sf.ezmorph.bean.MorphDynaBean@527740a2[
{roleId=2, roleName=角色名称}
], net.sf.ezmorph.bean.MorphDynaBean@13a5fe33[
{roleId=3, roleName=角色名称}
]]}
3、解析json字符串,通过key获取值
JSONObject jsonObject = JSONObject.fromObject(beanToJsonStr());
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
String address= jsonObject.getString("address");
System.out.println("name="+name);
System.out.println("age="+age);
System.out.println("address="+address);
String roleStr=jsonObject.getString("roles");
JSONArray jsonArray = JSONArray.fromObject(roleStr);
for(int i=0;i<jsonArray.size();i++){
System.out.println(jsonArray.get(i).toString());
}
输出结果
name=晓晓
age=25
address=山东青岛
{"roleId":1,"roleName":"角色名称"}
{"roleId":2,"roleName":"角色名称"}
{"roleId":3,"roleName":"角色名称"}
4、User.java
import com.elink.estos.modules.ibms.dto.Role;
import java.util.ArrayList;
import java.util.List;
/**
* @Date: 2019/9/3 14:57
* @Description:
*/
public class User {
private String name;
private int age;
private String address;
private List<Role> roles;
public User(){
this.name="晓晓";
this.age=25;
this.address="山东青岛";
this.roles=initRoles();
}
private List<Role> initRoles() {
List<Role> roles=new ArrayList<>();
for(int i=1;i<4;i++){
Role role=new Role();
role.setRoleId(i);
role.setRoleName("角色名称");
roles.add(role);
}
return roles;
}
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 getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public List<Role> getRoles() {
return roles;
}
public void setRoles(List<Role> roles) {
this.roles = roles;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
", roles=" + roles +
'}';
}
}
5、Role.java
/**
* @Date: 2019/9/3 14:57
* @Description:
*/
public class Role {
private int roleId;
private String roleName;
public int getRoleId() {
return roleId;
}
public void setRoleId(int roleId) {
this.roleId = roleId;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
}