java通过maven构建项目实现日志生成模拟(二)构建数据

启动日志格式

启动日志结构相对简单,主要包含公共信息,启动信息和错误信息。
{
    
    
  "common": {
    
    
    "ar": "230000",              -- 地区编码
    "ba": "iPhone",              -- 手机品牌
    "ch": "Appstore",            -- 渠道
    "md": "iPhone 8",            -- 手机型号
    "mid": "YXfhjAYH6As2z9Iq", -- 设备id
    "os": "iOS 13.2.9",          -- 操作系统
    "uid": "485",                 -- 会员id
    "vc": "v2.1.134"             -- app版本号
  },
  "start": {
    
       
    "entry": "icon",         --icon手机图标  notice 通知   install 安装后启动
    "loading_time": 18803,  --启动加载时间
    "open_ad_id": 7,        --广告页ID
    "open_ad_ms": 3449,    -- 广告总共播放时间
    "open_ad_skip_ms": 1989   --  用户跳过广告时点
  },
"err":{
    
                         --错误
"error_code": "1234",      --错误码
    "msg": "***********"       --错误信息
},
  "ts": 1585744304000   --跳入时间戳
}

根据上面的日志来构建数据

在java文件夹下创建FastJsonTest类
在这里插入图片描述

public class FastJsonTest {
    
    
    public static void main(String[] args) {
    
    

    }

    public static  String toJSONString(){
    
    

    }
}

创建一个文件夹,下面包含Common,Error,Start类
在这里插入图片描述

输入数据,编写Common类

public class Common {
    
    
    private  String ar;
    private  String ba;
    private  String ch;
    private  String md;
    private  String mid;
    private  String os;
    private  String uid;
    private  String vc;
    }

然后Alt + Insert 创建get 和 set
在这里插入图片描述
在这里插入图片描述
按Shift+↓全选;其他类同理
在这里插入图片描述

编写Start类

public class Start {
    
    
    private String entry;
    private int open_ad_id;
    private int open_ad_ms;
    private int open_ad_skip_ms;
    }

在这里插入图片描述

编写Error类

public class Error {
    
    
    private String error_code;
    private String msg;
    }

在这里插入图片描述

编写创建启动日志类

public class Start_Log {
    
    
    private Common common;
    private Start start;
    private Error err;
    private long ts;
    }

在这里插入图片描述

主要方法介绍

下载Json的jar包主要是利用两个方法;

toJSONString() 和 parseObject()

JSON.toJSONString() : 将对象转换为JSON字符串;
JSON.parseObject() 将JSON字符串转换为Java对象;

最后需要做到 从一串JSON字符串里面,找到需要的数据

构建日志

在这里插入图片描述

import com.alibaba.fastjson.JSON;
import com.zygxy.bean.Common;
import com.zygxy.bean.Error;
import com.zygxy.bean.Start;
import com.zygxy.bean.Start_Log;

import java.util.Date;

public class FastJsonTest {
    
    
    public static void main(String[] args) {
    
    
        Common common =new Common();
        common.setAr("450000");
        common.setBa("OPPO");
        common.setCh("oppo shop");
        common.setMd("OPPO K1");
        common.setMid("YXfhjAYH6As2z9Iq");
        common.setOs("android 11");
        common.setUid("99999");
        common.setVc("v2.1");

        Start start = new Start();
        start.setEntry("icon");
        start.setOpen_ad_id(18803);
        start.setOpen_ad_ms(5000);
        start.setOpen_ad_skip_ms(3000);

        Error err= new Error();
        err.setError_code("0000");
        err.setMsg("");

        Start_Log log= new Start_Log();
        log.setCommon(common);
        log.setStart(start);
        log.setErr(err);
        log.setTs(new Date().getTime());

        String jsonString = toJSONString(log);
        System.out.println(jsonString);
        
    }

    public static String  toJSONString(Object o)
    {
    
    
        return JSON.toJSONString(o);
    }


}

点击运行
在这里插入图片描述{"common":{"ar":"450000","ba":"OPPO","ch":"oppo shop","md":"OPPO K1","mid":"YXfhjAYH6As2z9Iq","os":"android 11","uid":"99999","vc":"v2.1"},"err":{"error_code":"0000","msg":""},"start":{"entry":"icon","open_ad_id":18803,"open_ad_ms":5000,"open_ad_skip_ms":3000},"ts":1639200109107}

反过来也可以通过JSON.parseObject()将上面的json字符串转化成java对象

在这里插入图片描述
编写测试测试对象

public static Object  fromJsonStringtoObject(String jsonString,Class clz){
    
    
        return JSON.parseObject(jsonString,clz);
    }

编写代码
在这里插入图片描述

		String jsonString2="{\"common\":{\"ar\":\"450000\",\"ba\":\"OPPO\",\"ch\":\"oppo shop\",\"md\":\"OPPO K1\",\"mid\":\"YXfhjAYH6As2z9Iq\",\"os\":\"android 11\",\"uid\":\"99999\",\"vc\":\"v2.1\"},\"err\":{\"error_code\":\"0000\",\"msg\":\"\"},\"start\":{\"entry\":\"icon\",\"open_ad_id\":18803,\"open_ad_ms\":5000,\"open_ad_skip_ms\":3000},\"ts\":1639200109107}";
        Start_Log o =(Start_Log) fromJsonStringtoObject(jsonString2, Start_Log.class);
        System.out.println(o);

把之前的代码改一下,这里注释
在这里插入图片描述
在这里插入图片描述上面四个类下面 加上toString方法:

在这里插入图片描述
在这里插入图片描述
其它几个同理

运行程序得到:
在这里插入图片描述

Start_Log{
    
    common=Common{
    
    ar='450000', ba='OPPO', ch='oppo shop', md='OPPO K1', mid='YXfhjAYH6As2z9Iq', os='android 11', uid='99999', vc='v2.1'}, start=Start{
    
    entry='icon', open_ad_id=18803, open_ad_ms=5000, open_ad_skip_ms=3000}, err=Error{
    
    error_code='0000', msg=''}, ts=1639200109107}

Guess you like

Origin blog.csdn.net/weixin_45556441/article/details/121870039