如何从非结构化日志文件中提取json字符串?

时间:2016-03-22 08:31:50

标签: java json regex logging

我得到了这样的日志,其中一些信息输出为json。

2016-03-21 21:36:20.878  INFO 17512 --- [main] This is going well.
ok: [goingwell] => {
    "localresult": {
        "aa":"bb",
        "aaa":"bbb"
    }
}
2016-03-21 21:36:31.172  INFO 17513 --- [main] Continue logging ...
2016-03-21 21:36:42.568  INFO 17514 --- [main] With more json strings...
ok: [xxa123] => {
    "axaxaxa": {
        "aada":"bb",
        "aaadfa":"bbb"
    }
}
2016-03-21 21:36:43.132  INFO 17515 --- [main] Continue logging ...
2016-03-21 21:36:45.428  INFO 17516 --- [main] With more json strings...
ok: [xxa123] => {
  "ccc": {
    "ddd": {
      "eee": {
        "fff": "ggg"
      }
    }
  }
}

如何用Java获取每个json字符串?

这个json可能是嵌套的。

我知道使用PCRE可以通过递归匹配(\{(?:[^{}]|(?R))*\})完成此操作,但Java似乎没有好的库来支持PCRE。

使用java代码/库有没有很好的方法来实现这个目标?

(我有一个丑陋的解决方案,通过限制上述正则表达式的递归深度。)

0 个答案:

没有答案