.Net Regex解析特定的JSON格式

Bas*_*sic 0 .net regex vb.net json

我正在编写一个小型的Web服务,它以具有各种"主题"的图像的形式生成SO/SF/SU/MSO用户天赋.我发现这比使用SO提供的HTML/JS解决方案更为可取,因为它更灵活,并且在论坛签名中也更好.

我正在使用显然非官方的API检索数据(此处有更多信息).我可以用HTML或JSON格式获取数据.我假设JSON更容易解析.

不幸的是,我在正则表达方面并不擅长.而我能想到的最好的是一些非常hacky的子串.我相信正则表达式应该是最优雅的解决方案,但欢迎其他建议.

有人可以指出我正确的方向与匹配ID,GravatarURL,ProfileURL,DisplayName,声誉和徽章计数(青铜/银/金)的正则表达式.

FWIW这将在VB.Net项目中使用(如果影响语法)

{"id":1,"gravatarHtml":"\u003cimg src=\"http://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8?s=50&d=identicon&r=PG\" height=\"50\" width=\"50\" alt=\"\"\u003e","profileUrl":"http://stackoverflow.com/users/1/jeff-atwood","displayName":"Jeff Atwood","reputation":"18,446","badgeHtml":"\u003cspan title=\"8 gold badges\"\u003e\u003cspan class=\"badge1\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e8\u003c/span\u003e\u003c/span\u003e\u003cspan title=\"57 silver badges\"\u003e\u003cspan class=\"badge2\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e57\u003c/span\u003e\u003c/span\u003e\u003cspan title=\"72 bronze badges\"\u003e\u003cspan class=\"badge3\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e72\u003c/span\u003e\u003c/span\u003e"}
Run Code Online (Sandbox Code Playgroud)

或者稍微可读的格式:

{
"id":1,
"gravatarHtml":"\u003cimg src=\"http://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8?s=50&d=identicon&r=PG\" height=\"50\" width=\"50\" alt=\"\"\u003e",
"profileUrl":"http://stackoverflow.com/users/1/jeff-atwood",
"displayName":"Jeff Atwood",
"reputation":"18,446",
"badgeHtml":"
    \u003cspan title=\"8 gold badges\"\u003e\u003cspan class=\"badge1\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e8\u003c/span\u003e\u003c/span\u003e
    \u003cspan title=\"57 silver badges\"\u003e\u003cspan class=\"badge2\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e57\u003c/span\u003e\u003c/span\u003e
    \u003cspan title=\"72 bronze badges\"\u003e\u003cspan class=\"badge3\"\u003e●\u003c/span\u003e\u003cspan class=\"badgecount\"\u003e72\u003c/span\u003e\u003c/span\u003e
"
}
Run Code Online (Sandbox Code Playgroud)

(注意:值得注意的是,如果你没有任何一个徽章,根本没有该徽章的入口,而不是显示"0")

不幸的是,我甚至不知道从哪里开始使用正则表达式,所以任何帮助,建议或文档都非常感谢

[编辑]

如果您对此感兴趣,可以在此处获得一些正在进行的工作的截图:Me,Jeff Atwood,Joel Spolsky

如果有人想要自己的话,我会公开访问吗?

[/编辑]

Amb*_*ber 5

首先,不要使用正则表达式来解析JSON.与HTML一样,JSON不是常规语言,因此正则表达式无法真正解析它 - 只提供差的近似值,这很容易导致头痛.

相反,您可能希望查看JSON解析器JavaScriptSerializerJson.NET.