假设给定了 JSON 字符串,我想使用 C# 进行验证。我们都知道JSON字符串有如下格式
string jsonStr = {"Id":123,"Value":"asdf","Time":"adf","isGood":false}];
我现在想处理 Number、String、Boolean、Null 类型。可以看出JSON的模式是
{ + " + String + " + : + (Number)|(Boolean)|(" + String + ")|(Null) + , + ... + } + ]
// ... means one or more
我真的是正则表达式的新手,所以我不知道...谁能帮帮我?
编辑
抱歉,我没有使用 JSON.NET,也不想使用它。我发现使用 Regex 是验证我的 JSON 字符串的唯一方法。如果有任何建议,我会去做。谢谢
编辑2
我的问题是“如何使用 Regex 验证 JSON”,而不是“我应该使用 Regex 验证 JSON”。你们可能知道公司有自己的政策“不使用第三方资源”。我该怎么办?我只是不允许使用它。
请您参考如下方法:
我将把它放在我缺乏 JSON 知识的尝试的顶部,以便每个人都能看到它:
基本上,对于每个对此失去理智的人来说,现代正则表达式实现已经比正式的 cs 正则表达式走得更远,因此不再局限于表示常规语言,因为反向引用和递归等。因此,我们现在可以使用非常规语言的正则表达式来匹配事物,我会告诉你,这是相当不直观的。
无论如何,我会在这里为后代留下我的尝试。
这种模式:
{("\w+":(\d+|"\w+"|true|false|null))+}\]
如果我理解正确的话,应该符合你的要求,但是从愤怒的帖子 Storm 来看,你似乎不应该使用正则表达式。
