• 阿里巴巴fastjson的使用


    一、项目结构

    这里写图片描写叙述

    一个学生类。当中学生类中能够包括Course类对象
    使用Maven管理项目的能够加入fastjson的坐标:

     <dependency>
           <groupId>com.alibaba</groupId>
           <artifactId>fastjson</artifactId>
           <version>1.2.4</version>
     </dependency>

    二、数据对象转化为Json字符串

    GenerateJson.java代码标识转化为json字符串
    (1)将学生对象转化为json,当中学生中包括Course对象

    @Test
        public void testSimpleJSON(){
            Student stu = new Student("xuliugen", "nan", "123123", "100");
            Course course = new Course("JAVA", "xiaobin", "100");
            stu.setCourse(course);
            String json = JSON.toJSONString(stu);
            System.out.println(json);
        }
    {
        "course":{
            "coursename":"JAVA",
            "coursescore":"100",
            "courseteacher":"xiaobin"
        },
        "password":"123123",
        "score":"100",
        "sex":"nan",
        "username":"xuliugen"
    }

    (2)将一个单独的实体对象转化为json

    @Test
        public void testListJSON(){
            JSONTest jt1 = new JSONTest("xuliugen", "nan");
            JSONTest jt2 = new JSONTest("xieyan", "nv");
            List<JSONTest> li = new ArrayList<JSONTest>();
            li.add(jt1);
            li.add(jt2);
            String jsonstr = JSON.toJSONString(li);
            System.out.println(jsonstr);
        }
    [{"name":"xuliugen","sex":"nan"},{"name":"xieyan","sex":"nv"}]

    (3)将包括多个相似于(1)中的实体对象转化为json

    @Test
        public void testMulJSON(){
            Student stu = new Student("xuliugen", "nan", "123123", "100");
            Course course = new Course("JAVA", "xiaobin", "100");
            stu.setCourse(course);
            Student stu2 = new Student("xieyan", "nan", "123123", "100");
            Course course2 = new Course("music", "qwe", "100");
            stu2.setCourse(course2);
    
            List<Student> stuList = new ArrayList<Student>();
            stuList.add(stu);
            stuList.add(stu2);
            String json2 = JSON.toJSONString(stuList);
            System.out.println(json2);
        }
    [
        {
            "course":{
                "coursename":"JAVA",
                "coursescore":"100",
                "courseteacher":"xiaobin"
            },
            "password":"123123",
            "score":"100",
            "sex":"nan",
            "username":"xuliugen"
        },
        {
            "course":{
                "coursename":"music",
                "coursescore":"100",
                "courseteacher":"qwe"
            },
            "password":"123123",
            "score":"100",
            "sex":"nan",
            "username":"xieyan"
        }
    ]

    三、解析json数据到实体对象

    (1)解析上述(1)中学生中包括Course的对象

    [{"name":"xuliugen","sex":"nan"},{"name":"xieyan","sex":"nv"}]
        @Test
        public void testParseSimpleJSON(){
            String json = "[{"name":"xuliugen","sex":"nan"},{"name":"xieyan","sex":"nv"}]";
            JSONArray jsonArray = JSON.parseArray(json);
            String str = jsonArray.getString(0);
            JSONTest jsonTest = JSON.parseObject(str,JSONTest.class);
            System.out.println(jsonTest.getSex());
        }
    {
        "course":{
            "coursename":"JAVA",
            "coursescore":"100",
            "courseteacher":"xiaobin"
        },
        "password":"123123",
        "score":"100",
        "sex":"nan",
        "username":"xuliugen"
    }

    (2)因为仅仅有一个对象,解析例如以下:

    @Test
        public void testParseStudentIncludeCourseJSON() {
            String json = "{"course":{"coursename":"JAVA","coursescore":"100","courseteacher":"xiaobin"},"password":"123123","score":"100","sex":"nan","username":"xuliugen"}";
            Student stu = JSON.parseObject(json,Student.class);
            System.out.println(stu.getPassword());
        }

    (3)将上述中的(3)当有多个上述的对象的时候,解析例如以下:

    [
        {
        "course":{
            "coursename":"JAVA",
            "coursescore":"100",
            "courseteacher":"xiaobin"
        },
        "password":"123123",
        "score":"100",
        "sex":"nan",
        "username":"xuliugen"
        },
        {
        "course":{
            "coursename":"music",
            "coursescore":"100",
            "courseteacher":"qwe"
        },
        "password":"123123",
        "score":"100",
        "sex":"nan",
        "username":"xieyan"
        }
    ]

    解析例如以下:

    @Test
        public void testParseListStudentIncludeCourseJSON() {
            String json = "[{"course":{"coursename":"JAVA","coursescore":"100","courseteacher":"xiaobin"},"password":"123123","score":"100","sex":"nan","username":"xuliugen123"},{"course":{"coursename":"music","coursescore":"100","courseteacher":"qwe"},"password":"123123","score":"100","sex":"nan","username":"xieyan"}]";
    
            JSONArray jsonArray = JSON.parseArray(json);
            String str = jsonArray.getString(0);
            Student stu = JSON.parseObject(str, Student.class);
            System.out.println(stu.getUsername());
        }
  • 相关阅读:
    android studio无线真机调试------Android
    新建文件夹和文件,并向文件中写入数据---------Android
    wpf获取鼠标的位置-------WPF
    React Native环境搭建
    页面定制CSS代码
    视图优化
    内存优化
    电量优化
    轻量容器、枚举的使用
    AndroidAnnotations框架
  • 原文地址:https://www.cnblogs.com/llguanli/p/7231195.html
Copyright © 2020-2023  润新知