And*_*der 29
您可以使用以下功能
Function Get-StackOverFlowReputation {
param($userID)
$client = new-object System.Net.WebClient
$JSONFlair = $client.DownloadString("http://stackoverflow.com/users/flair/$userid.json")
$JSONFlair.split(",") | select-string "reputation","displayName"
}
260 > Get-StackOverFlowReputation -userID 45571
"displayName":"Andy Schneider"
"reputation":"344"
Run Code Online (Sandbox Code Playgroud)
这很快又脏.我相信你可以使用一些漂亮的库将JSON转换为PSobject但这将完成工作.
Sco*_*aad 19
这个问题看起来很有趣,我不得不尝试一下,即使它已经有了一个可接受的答案.另外,接受的答案似乎不适用于大于999的声誉(即1,000包含一个也被分割的逗号).
由于Flair的格式是JSON,简单地拆分它并不总是有效,而且对JSON的正则表达式几乎是不可能的.虽然有.NET JSON库,但我想在PowerShell中保留所有解决方案(包括V1).
以下使用3.5 JavaScriptSerializer类,它要求我们在脚本中加载程序集.
使用PowerShell 2.0,使用哈希创建"自定义对象"要容易得多.
function Get-StackOverflowReputation
{
param ( $UserId )
$assembly = [Reflection.Assembly]::LoadWithPartialName("System.Web.Extensions")
$client = New-Object System.Net.WebClient
$json = $client.DownloadString("http://stackoverflow.com/users/flair/$UserId.json")
$transmogrifer = New-Object System.Web.Script.Serialization.JavaScriptSerializer
$jsonFlair = $transmogrifer.DeserializeObject( $json )
$flair = New-Object PSObject -Property @{ user = $jsonFlair["displayName"]; rep = $jsonFlair["reputation"] }
$flair
}
1> Get-StackOverflowReputation -UserId 45571
user rep
---- ---
Andy Schneider 779
Run Code Online (Sandbox Code Playgroud)
在Powershell v3 CTP1中,它更短更容易:
function Get-StackOverflowReputation {
param($userID)
$JSON = (Invoke-WebRequest "http://stackoverflow.com/users/flair/$userid.json").content
convertfrom-Json $JSON
}
Run Code Online (Sandbox Code Playgroud)
赛跑
Get-StackOverflowReputation 1021945
Run Code Online (Sandbox Code Playgroud)
收益:
id : 1021945
gravatarHtml :
profileUrl : http://stackoverflow.com/users/1021945/jon-z
displayName : jon Z
reputation : 1,271
badgeHtml : <span title="1 silver badge"><span class="badge2">●</span><span class="badgecount">1</span></span><span title="7 bronze badges"><span lass="badge3">●/span><span class="badgecount">7</span></span>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1768 次 |
| 最近记录: |