实体类和JSON对象之间相互转化

Posted 技术改变世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实体类和JSON对象之间相互转化相关的知识,希望对你有一定的参考价值。

. [代码]工具类     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package myUtil;
 
import java.io.IOException;
 
import myProject.Student;
import myProject.StudentList;
 
import org.codehaus.jackson.map.ObjectMapper;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/**
 * 实体类和JSON对象之间相互转化(依赖包jackson-all-1.7.6.jar、jsoup-1.5.2.jar)
 * @author wck
 *
 */
public class JSONUtil {
    /**
     * 将json转化为实体POJO
     * @param jsonStr
     * @param obj
     * @return
     */
    public static<T> Object JSONToObj(String jsonStr,Class<T> obj) {
        T t = null;
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            t = objectMapper.readValue(jsonStr,
                    obj);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return t;
    }
     
    /**
     * 将实体POJO转化为JSON
     * @param obj
     * @return
     * @throws JSONException
     * @throws IOException
     */
    public static<T> JSONObject objectToJson(T obj) throws JSONException, IOException {
        ObjectMapper mapper = new ObjectMapper(); 
        // Convert object to JSON string 
        String jsonStr = "";
        try {
             jsonStr =  mapper.writeValueAsString(obj);
        } catch (IOException e) {
            throw e;
        }
        return new JSONObject(jsonStr);
    }
     
     
    public static void main(String[] args) throws JSONException, IOException {
        JSONObject obj = null;
        obj = new JSONObject();
        obj.put("name", "213");
        obj.put("age", 27);
        JSONArray array = new JSONArray();
        array.put(obj);
        obj = new JSONObject();
        obj.put("name", "214");
        obj.put("age", 28);
        array.put(obj);
        Student stu = (Student) JSONToObj(obj.toString(), Student.class);
        JSONObject objList = new JSONObject();
        objList.put("student", array);
        System.out.println("objList:"+objList);
        StudentList stuList = (StudentList) JSONToObj(objList.toString(), StudentList.class);
        System.out.println("student:"+stu);
        System.out.println("stuList:"+stuList);
        System.out.println("#####################################");
        JSONObject getObj = objectToJson(stu);
        System.out.println(getObj);
    }
}

2. [代码]实体(子类)     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package myProject;
 
public class Student {
     private String name;
        private int age;
        //private StudentClass studentClass;
        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 "Student [name=" + name + ", age=" + age + "]";
        }
}

3. [代码]实体父类     跳至 [1] [2] [3] [全屏预览]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package myProject;
 
import java.util.List;
 
public class StudentList {
     List<Student> student;
        public List<Student> getStudent() {
            return student;
        }
      
        public void setStudent(List<Student> student) {
            this.student = student;
        }
 
        @Override
        public String toString() {
            return "StudentList [student=" + student + "]";
        }  
}

以上是关于实体类和JSON对象之间相互转化的主要内容,如果未能解决你的问题,请参考以下文章

JSON对象与字符串相互转化ObjectMapper

Json字符串和Json对象相互转化

JS对象JSON字符串之间的相互转换

JSON与excel之间的相互转化(Vue)

JAVA中,类、对象、实体、实体类、实体对象之间存在怎样的联系??请高手做形象的解释。

FastJson学习:JSON格式字符串JSON对象及JavaBean之间的相互转换