【问题标题】:data structure for parsing Json log file in javajava中解析Json日志文件的数据结构
【发布时间】:2016-06-16 17:41:23
【问题描述】:

我正在尝试用 Java 解析 JSON 日志文件。 我已经完成了类和数据存储。

我只需要过滤它并存储在适当的数据结构中,这样我就不需要一次又一次地访问该文件。

以下是我的日志文件示例:

{"name":"@company","hostname":"abc","pid":18624,"level":30, "loggerObject":{"feature":"VC","module":"VIDEO", "level":"INFO","logTime":"16:32:46", “用户名”:“xyz”,“课程名”:“16June2016”} }

我需要用 4 个参数进行过滤

  1. 等级
  2. 模块
  3. 课程名称
  4. 用户名

这些级别可以是 20 或 30,模块可以是视频或音频。 coursename 和 username 可以是任何东西。

我如何设计/使用数据结构来存储这些数据并降低其搜索复杂性?

【问题讨论】:

  • 为什么不将日志输入 Mongo 数据库并通过 NoSQL 查询来查询它们?
  • Java 在 javax.json 包中有一个内置的 JSON API。
  • 我会说将其转储​​到 excel 中。您将在那里拥有所需的一切:)

标签: java json algorithm search data-structures


【解决方案1】:

您可以使用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");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    相关资源
    最近更新 更多