Skip to main content
 首页 » 编程设计

C#,如何使用正则表达式验证 JSON

2024年01月24日24lori

假设给定了 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 知识的尝试的顶部,以便每个人都能看到它:

Regex to validate JSON

基本上,对于每个对此失去理智的人来说,现代正则表达式实现已经比正式的 cs 正则表达式走得更远,因此不再局限于表示常规语言,因为反向引用和递归等。因此,我们现在可以使用非常规语言的正则表达式来匹配事物,我会告诉你,这是相当不直观的。



无论如何,我会在这里为后代留下我的尝试。

这种模式:

 {("\w+":(\d+|"\w+"|true|false|null))+}\] 

如果我理解正确的话,应该符合你的要求,但是从愤怒的帖子 Storm 来看,你似乎不应该使用正则表达式。