【问题标题】:Most efficient way to convert json in regex C#在正则表达式 C# 中转换 json 的最有效方法
【发布时间】:2016-09-02 03:10:51
【问题描述】:

json:

[{"Command":"Notificaion-:hi","ID":"142245","AnotherColumn":"data1"},
{"Command":"Notificaion-:hi2","ID":"14255","AnotherColumn":"data2"},
{"Command":"Notificaion-:hi5","ID":"1421245","AnotherColumn":"data4"},
{"Command":"Notificaion-:hi3","ID":"14221145","AnotherColumn":"data2"}]

我正在考虑使用 MatchCollection,其中每个匹配项都来自 {...}。奇数组号是列名,par 列号是数据。

我坚持:

{(?:(?:(?:\"(.*?)\":)\"(.*?)\",))+?(?:\"(.*?)\":)\"(.*?)\"}

{(?:(?:(?:\"(.*?)\":)\"(.*?)\",))*?(?:\"(.*?)\":)\"(.*?)\"}

这些都没有达到预期的效果。

【问题讨论】:

  • 处理 JSON 的最有效方法是使用 JSON 解析器,而不是正则表达式...例如,您可以使用 JavascriptSerializer,它是 .NET 框架的一部分。你有特别想要正则表达式的理由吗?
  • 您确定要使用正则表达式解析 JSON 吗?有几个图书馆可以为你做这件事。 (当然,除非是为了你自己的娱乐,但我不明白你为什么会在这里寻求帮助)。
  • 我很清楚很多..很多..很多库及其效率我正在寻找,但是,用正则表达式解析它
  • @Zananok 为什么?只是为了自娱自乐吗?如果是这样,最好先说出是哪一部分让你绊倒,然后寻求解决方案,因为这样你会学得更好。
  • 我不会把它称为我的娱乐,它的目的是为了别的,但最好用那个 JSON 字符串来解释。我被困在循环的第一部分: (?:(?:\"(.*?)\":)\"(.*?)\",))+?我无法获取所有列(和数据),它似乎跳过了最后一列或第一列

标签: c# json regex


【解决方案1】:
{(?:(?:"([^"]+)":"([^"]+)"(?:\s*,\s*)?))+}

{(?:(?:"(.+?)":"(.+?)"(?:\s*,\s*)?))+}

列名在组 1 中捕获。值在组 2 中的捕获中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-29
    • 2016-03-25
    • 2014-07-20
    • 2011-10-02
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多