【发布时间】:2019-09-30 17:38:54
【问题描述】:
我正在尝试解析系统日志(或类似系统日志)的响应以仅提取 JSON
<14>1 09 30 2019 15:34:37 UTC logsource {"somejson": "thejson", "details": {"detail1": detail, "detail2": detail"}}
<14>1 09 30 2019 15:34:37 UTC logsource {"somejson": "thejson", "details": {"detail1": detail, "detail2": detail"}}
<14>1 09 30 2019 15:34:37 UTC logsource {"somejson": "thejson", "details": {"detail1": detail, "detail2": detail"}}
我想删除“1 09 30 2019 15:34:37 UTC logsource”前缀,以便剩余数据是有效的 JSON,以便我可以将每一行发送到数据库。我认为输出看起来像这样:
{
"body" [
{
"somejson": "thejson",
"details": {
"detail1": details,
"detail2": details.
}
},
{
"somejson": "thejson",
"details": {
"detail1": details,
"detail2": details.
}
},
{
"somejson": "thejson",
"details": {
"detail1": details,
"detail2": details.
}
}
]
}
也许我可以遍历原始数据并以某种方式使用 String.Replace 替换字符串?我感谢任何帮助,即使它只是为我指明了正确的方向。
【问题讨论】:
-
我假设“1 09 30 2019 15:34:37 UTC logsource”会不一致?因此,如果我理解,您需要做的是删除第一个“{”之前的所有内容。对吗?
-
@CaseyCrookston 是的,删除第一个 { 之前的所有内容是理想的。大概为了使它成为一个有效的 JSON,我还需要添加一些格式
-
删除第一个 { 之前的所有内容非常简单。你可以通过像
c# remove everything before character这样的快速谷歌搜索来解决这个问题。从那里应该很容易添加开头{"body" [和关闭]} -
@CaseyCrookston 我认为从短字符串中删除某些内容不会有问题,但是如何删除以 开头的每一行中第一个 { 之前的所有内容?能够遍历每一行并执行相同的操作,我有点迷失了
-
好的,听起来这里发生了一些您可能没有在帖子中解释的事情。您是否有需要修改列表中每个字符串的
List<string>?另外,在您向我们展示的示例中,这是字符串的全部内容吗?