2013-07-11 19 views
16

Powershell 2.0を使用しています(現在V3.0にアップグレードすることはできません)&以下のJsonオブジェクトを読んでいます。Powershell 2.0でJsonオブジェクトを読む

"{\"DevResults\":[{\"TechnologyName\":\"AD\",\"RuleName\":\"SOA account (user logon/display name)\",\"OutputValue\":\"SOADevClientCenter\"}, 
        {\"TechnologyName\":\"AD\",\"RuleName\":\"SOA account (pre-Windows 2000)\",\"OutputValue\":\"SOADevCliCen\"}, 
\"ProdResults\":[{\"TechnologyName\":\"AD\",\"RuleName\":\"SOA account (user logon/display name)\",\"OutputValue\":\"SOAClientCenter\"},     
       {\"TechnologyName\":\"AD\",\"RuleName\":\"BPM Service Account (pre-Windows 2000)\",\"OutputValue\":\"BPM_CliCen_05\"}]}" 

同じことをお手伝いできますか?

ありがとうございました。

答えて

28

おそらく、System.Web.Extensionsを使用できます。そのため、そのアセンブリをロードして利用可能なJSON parserを使用できます。ここでは簡単サンプルは次のとおりです。

[System.Reflection.Assembly]::LoadWithPartialName("System.Web.Extensions") 
$json = "{a:1,b:2,c:{nested:true}}" 
$ser = New-Object System.Web.Script.Serialization.JavaScriptSerializer 
$obj = $ser.DeserializeObject($json) 

参考:http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx

+0

PowerShellのV2は、.NET 2.0をオフにrunns。このライブラリは3.5にインストールされています.net 3.5以上がインストールされていないと動作しません。ほとんどがインストールされますが、その依存関係が追加されます。 – jrich523

+1

LOL(Dueling edits)。ええと、技術的にPowerShell v2は* CLR * 2で動作します。* .net 3.5がインストールされている場合は、.net 2.xの上に拡張されていますが、 PowerShell 2で...(ここではLoadWithPartialNameについては話しません。) – Jaykul

+2

'$ psObj = New-Object PSObject -Property $ ser.DeserializeObject($ json)'も本当に便利です。 – Phil

関連する問題