2013-07-11 19 views
16

Powershell 2.0 kullanıyorum (şu andan itibaren V3.0'a bir üstbilgi yapılamıyor) & Aşağıdaki Json nesnesini okumak istiyorum.Powershell 2.0'da Json Nesnesini Okuyun

"{\"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\"}]}" 

Lütfen aynı konuda bana yardımcı olabilir misiniz?

Teşekkürler.

cevap

28

Muhtemelen System.Web.Extensions var ve bu montajı yükleyebilir ve kullanılabilir olan JSON parser kullanabilirsiniz. Burada hızlı bir örneğidir:

[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) 

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

+0

Powershell V2 .net 2.0 kapalı runns. Bu kütüphane 3.5 olup, 3.5 bit yüklü olduğundan emin değilseniz, çalışmaz. Verilen, çoğu yüklü olacak, ancak bir bağımlılık. – jrich523

+1

LOL (düello düzenleri). Evet, teknik olarak PowerShell v2 çalışıyor * CLR * 2. * Eğer *. Net 3.5 kurulu ise, bu .net 2.x'in üstündeki bir genişleme. PowerShell 2'de ... (ve burada LoadWithPartialName hakkında konuşmayalım ...) – Jaykul

+2

'$ psObj = Yeni Nesne PSObject -Property $ ser.DeserializeObject ($ json)' da gerçekten kullanışlıdır. – Phil

İlgili konular