今天我开始为日志文件编写一个简单的解析器。我想获取日志文件并将其转换为简单的 json 结构。
日志文件是一致的,并且有 3 个主要部分(示例如下):
时间戳 [23 位]
代码 [4 位]
有效载荷 [可变数字]
示例日志
2018-07-25T08:47:16,094,164f,test1
2018-07-25T08:47:18,163,1678,test2
2018-07-25T08:47:19,501,1662,test3
2018-07-25T08:47:21,278,1634,test4
2018-07-25T08:47:23,347,1632,test5
2018-07-25T08:47:24,686,1665,test6
2018-07-25T08:47:26,463,1678,test7
2018-07-25T08:47:28,533,1678,test8
2018-07-25T08:47:29,877,1632,test9
2018-07-25T08:47:31,687,1632,test10
由此,我想创建一个 JSON 文件,该文件可以很好地整合内部信息。这就是我想出的(使用org.json.JSONObject库)。
BufferedReader reader = new BufferedReader(new FileReader ("file.log"));
String line = null;
String timestamp = null;
String eventCode = null;
String payload = null;
JSONObject codePayload = new JSONObject();
JSONObject finalString = new JSONObject();
for (int i = 0; i < 10; i++) {
line = reader.readLine();
timestamp = line.substring(0, 23);
eventCode = line.substring(24, 28);
payload = line.substring(29, line.length());
codePayload.put("ID", eventCode);
codePayload.put("PL", payload);
finalString.put(timestamp, codePayload);
codePayload = new JSONObject();
}
System.out.println(finalString.toString());
这个小片段应该可以很好地工作(不要介意 for),而且确实如此。它根据我给它的字符串创建 JSON 文件,但它以奇怪的顺序放置,见下文。
汪汪一只猫
相关分类