java通过maven构建项目实现日志生成模拟(二)构建数据,FastJson方法的使用

java通过maven构建项目实现日志生成模拟(二)构建数据,FastJson方法的使用,第1张

java通过maven构建项目实现日志生成模拟(二)构建数据,FastJson方法的使用 启动日志格式
启动日志结构相对简单,主要包含公共信息,启动信息和错误信息。
{
  "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}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5661547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存