2016-06-16 38 views
-1

我想解析Java中的JSON日誌文件。 我完成了類和數據存儲。解析Java中的Json日誌文件的數據結構

我只需要過濾它,並存儲在適當的數據結構,以便我不需要一次又一次地訪問該文件。

下面是我的日誌文件的例子:

{ 「名」: 「@公司」, 「主機名」: 「ABC」, 「PID」:18624, 「級別」:30, 「loggerObject」:{「feature」:「VC」,「module」:「VIDEO」, 「level」:「INFO」,「logTime」:「16:32:46」, 「userName」:「xyz」 「courseName」: 「16June2016」}}

我需要與4個參數

    過濾
  1. 等級
  2. 模塊
  3. courseName
  4. 的userName

這些水平可以是20或30和模塊可以是視頻或音頻。 coursename和用戶名可以是任何東西。

如何設計/使用數據結構來存儲這些數據並降低其搜索複雜度?

+0

爲什麼不將日誌提供到Mongo數據庫並通過NoSQL查詢查詢它們? –

+0

Java在['javax.json'](http://docs.oracle.com/javaee/7/api/javax/json/package-summary.html)包中包含內置的JSON API。 – 4castle

+0

我會說轉儲它爲優秀。 你將擁有你需要的一切:) –

回答

0

您可以使用JsonReader解析JSON字符串,然後使用JsonObject訪問您需要的字段。從那裏你可以存儲你需要的數據。

JsonObject log = Json.createReader(new FileReader("log-file.txt")) 
        .readObject() 
        .getJsonObject("loggerObject"); 

String level  = log.getString("level"), 
     module  = log.getString("module"), 
     courseName = log.getString("courseName"), 
     userName = log.getString("userName");