阿里json常用的方法使用

阿里json常用的方法使用

package com.tedu.test;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.tedu.entity.Student;
import com.tedu.util.Common;
import org.thymeleaf.util.StringUtils;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * TODO
 *
 * @author syl
 */
public class TestJson {
    public static void main(String[] args) {
        String s="{\"code\": \"200\",\"message\": \"success\",\"data\": {\"pageSize\": 2,\"pageCurrent\": 1,\"totalCount\": 16,\"pageTotal\": 8,\"records\": [{ \"id\": 8,\"sno\": \"9\",\"class1\": \"二年级\",\"name\": \"sy\",\"sex\": \"女\",\"chinese\": \"80\",\"math\": \"80\",\"english\": \"80\",\"createTime\": \"2021-01-22 07:30:02\",\"updateTime\": \"2021-01-22 07:30:02\"},{\"id\": 11, \"sno\": \"10\",\"class1\": \"二年级\",\"name\": \"s\",\"sex\": \"男\",\"chinese\": \"70\",\"math\": \"80\", \"english\": \"90\",\"createTime\": \"2021-01-22T07:33:20.000+00:00\", \"updateTime\": \"2021-01-22T07:33:20.000+00:00\"}]}}";
        if(StringUtils.isEmpty(s)){
            return;
        }
        JSONObject jsonObject = JSONObject.parseObject(s);
        if (jsonObject.isEmpty() || jsonObject.size() == Common.Number.ZERO){
            return;
        }
        JSONObject data = jsonObject.getJSONObject("data");
        if (data.isEmpty() || data.size() == Common.Number.ZERO){
            return;
        }
        JSONArray records = data.getJSONArray("records");
        if (records.isEmpty() || records.size() == Common.Number.ZERO){
            return;
        }
        String s1 = records.toString();
        List<Map> list = JSONArray.parseArray(s1, Map.class);
        //储存学生集合
        List<Student> sList = new ArrayList<>();
        //每一个学生对象键值对
        Map map ;
        //每一个学生对象
        Student stu;
        for(int i = Common.Number.ZERO; i<list.size();i++){
            map = list.get(i);
            stu = new Student();
            setStudent(sList, map, stu);
        }
        sList.forEach(s11-> System.out.println(s11));
    }

    /**
     * 构建学生对象
     * @param sList
     * @param map
     * @param stu
     */
    private static void setStudent(List<Student> sList, Map map, Student stu) {
        stu.setChinese(map.get("chinese").toString() ==null ?"/":map.get("chinese").toString());
        stu.setSno(map.get("sno").toString()==null ?"/":map.get("sno").toString());
        stu.setCreateTime(new Date());
        stu.setClass1(map.get("class1").toString()==null ?"/":map.get("class1").toString());
        stu.setSex(map.get("sex").toString()==null ?"/":map.get("sex").toString());
        stu.setName(map.get("name").toString()==null ?"/":map.get("name").toString());
        stu.setEnglish(map.get("english").toString()==null ?"/":map.get("english").toString());
        stu.setUpdateTime(new Date());
        stu.setId(Integer.valueOf(map.get("id").toString()==null ?"0":map.get("english").toString()));
        stu.setMath(map.get("math").toString()==null ?"/":map.get("math").toString());
        sList.add(stu);
    }
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值