启动日志结构相对简单,主要包含公共信息,启动信息和错误信息。 { "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类
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+↓全选;其他类同理
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}
编写测试测试对象
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}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)