2015-01-21 14 views
13

Şu anda 3.0 sürümüne yükseltmenin mümkün olmadığı bir PowerShell 2.0 ortamı oluşturmak istiyorum.PowerShell 2.0 ConvertFrom-Json ve ConvertTo-Json uygulaması

Ben PowerShell 3.0 olan ConvertFrom-Json cmdlet ve ConvertTo-Json cmdlet'in PowerShell 2.0 komut dosyası uygulaması arıyorum.

ConvertFrom-Json ile ilgileniyorum ama ConvertTo-Json da güzel olurdu.

+2

kime konu dışı olmak üzere oy kullandıysa, anlayamıyorum. – x0n

+2

Muhtemelen bunu kısmen kabul ettiğim bir "senaryo düzeni" olarak okudu. ITIL terminolojisini kullanmak için: Bu bir hizmet talebi (komut dosyası ister), bir olay değil (hata içeren komut dosyası örneği). :) –

+1

@FrodeF., Isteğimle ilgili bazı bilgiler eklemek için, JSON uyumlu bir sürüm yazmak istemediğimden bu kesinlikle bir 'komut dosyası sırası'. İthal edilebilecek ve kaldırabilecek bir meclisin olmasını umuyordum. Kendi yepyeni senaryolarımı yazmam ve hata ayıklamaktan ziyade, maymun işi problemi için bilinen bir çözüm olduğunu umuyordum. Bu hala konu dışı ise başka bir yere taşıyabilirim ... –

cevap

30
function ConvertTo-Json20([object] $item){ 
    add-type -assembly system.web.extensions 
    $ps_js=new-object system.web.script.serialization.javascriptSerializer 
    return $ps_js.Serialize($item) 
} 

function ConvertFrom-Json20([object] $item){ 
    add-type -assembly system.web.extensions 
    $ps_js=new-object system.web.script.serialization.javascriptSerializer 

    #The comma operator is the array construction operator in PowerShell 
    return ,$ps_js.DeserializeObject($item) 
} 
+4

Yukarıdaki gibi bir ConvertFrom işlevi var. 'function ConvertFrom-Json20 ([object] $ öğesi) { add-type -sistemi.web.extensions $ ps_js = yeni nesne system.web.script.serialization.javascriptSerializer dönüş $ ps_js.DeserializeObject ($) öğe) } '. Kötü biçimlendirilmiş, üzgünüm – Geoff

+1

Teşekkürler Geoff! Yanıtı –

+1

ekledim .NET 3.5 yüklü değilse, bir hata iletisi alırsınız:" Eklenti Türü: Dosya veya derleme yüklenemedi "Sistem .Web.Extensions, Sürüm = 3.5.0.0, Kültür = tarafsız, PublicKeyToken = 31bf3856ad364e35 veya onun bağımlılarından biri s. Sistem belirtilen dosyayı bulamıyor. "... –

2

powershelljson.codeplex.com'a bir göz atabilirsiniz. Bu çalışmazsa, muhtemelen bir tane yazmanız gerekecektir. Çalışmanın bir kısmını yapmak için Json.Net veya Web.Extensions (sample) kullanan bir sarıcı yazabilirsiniz.

+0

Codeplex bağlantısı sadece ihtiyacım olan şeye benziyor, teşekkürler! BTW, ben benzer bir şey bulmaya çalışırken google ile saatler geçirdim, ama sadece powershell v3 :-( –

+0

BTW hakkında konuşmak istedim, yarın bunları deneyeceğim ve çalışıp çalışmadığını kabul ediyorum –

1

Ben ancak (more details) Bu kayıt komutları çalıştırabilir, currently top rated post above yorum yapamaz değilim: Eğer alıyorsanız

reg add hklm\software\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1 /f 
    reg add hklm\software\wow6432node\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1 /f 

yukarıda ConvertTo-Json20 ve ConvertTo-Json20 fonksiyonları çalışmasını sağlamak için Hata: