2014-05-08 9 views
8

Der folgende Code verwendetConvertTo-Json wirft Fehler, wenn eine Zeichenfolge endet in Backslash

W:\surge\ogre> @{SolutionDir='W:\Surge\ogre\'} | ConvertTo-Json 
ConvertTo-Json : The converted JSON string is in bad format. 
At line:1 char:35 
+ @{SolutionDir='W:\Surge\ogre\'} | ConvertTo-Json 
+         ~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (System.Collections.Hashtable:PSObject) [ConvertTo-Json], InvalidOperationException 
    + FullyQualifiedErrorId : JsonStringInBadFormat,Microsoft.PowerShell.Commands.ConvertToJsonCommand 

Warum einen Fehler erzeugt? Wie könnte ich das beheben? Dies ist in einem Prebuild-Event, also versuche ich, es einzeilig und so kompakt wie möglich zu halten.

+1

Ehrlich gesagt: Es sieht aus wie ein Bug im Umgang mit Trailing '\'. Es funktioniert gut, wenn Sie die richtigen Daten ConvertFrom-Json, aber nicht anders herum. – BartekB

Antwort

23

Mit dem -Compress Schalter sollte Ihr Problem lösen. Ich glaube, das ist ein Fehler in PowerShell. Andere haben ein ähnliches Problem mit ex gehabt. Werte containing double quotes

+0

Ja, das ist es, danke und danke für den Link zum Bugtracker, damit ich das Problem melden kann –

+3

Großartig. Erstellen Sie einen neuen Verbindungsfehlerbericht, da Ihr Problem nicht zu 100% gleich ist. Es zeigt jedoch, dass das Cmdlet "ConvertTo-Json" etwas Arbeit von MS benötigt. Der Fehler tritt weiterhin in PowerShell 5.0-Vorschau auf. Bitte fügen Sie den Link zu Ihrem Fehlerbericht in einem Kommentar hinzu, damit Zuschauer ihn aufwerten können. –

+2

[Hier erstellt] (https://connect.microsoft.com/PowerShell/feedback/details/869768/powershell-convertto-json-error-when-has-string-with-trailing-backslash) –

Verwandte Themen