栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659480.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号