2014-05-08 16 views
8

Các bit mã sau đây tạo ra một lỗiConvertTo-Json ném lỗi khi sử dụng một chuỗi chấm dứt trong xuyệc ngược

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 

Tại sao? Làm thế nào tôi có thể sửa lỗi này? Đây là một sự kiện prebuild vì vậy tôi đang cố gắng giữ cho nó một dòng và gọn nhẹ nhất có thể.

+1

Thành thật mà nói: nó trông giống như một lỗi trong xử lý dấu vết '\'. Nó hoạt động tốt nếu bạn ConvertFrom-Json dữ liệu thích hợp, nhưng không phải cách khác xung quanh. – BartekB

Trả lời

23

Sử dụng công tắc -Compress sẽ giải quyết được sự cố của bạn. Tôi tin rằng đây là một lỗi trong PowerShell. Những người khác đã có vấn đề tương tự với cũ. các giá trị containing double quotes

+0

Có điều đó, cảm ơn bạn và cảm ơn bạn đã liên kết đến trình theo dõi lỗi để tôi có thể báo cáo sự cố –

+3

Tuyệt vời. Tạo báo cáo lỗi kết nối mới vì sự cố của bạn không bằng 100%. Tuy nhiên nó cho thấy rằng lệnh ghép ngắn 'ConvertTo-Json' cần một chút công việc từ phần MS. Lỗi vẫn xảy ra trong bản xem trước PowerShell 5.0. Vui lòng thêm liên kết vào báo cáo lỗi của bạn trong nhận xét để người xem có thể upvote nó. –

+2

[Tạo tại đây] (https://connect.microsoft.com/PowerShell/feedback/details/869768/powershell-convertto-json-error-when-has-string-with-trailing-backslash) –

Các vấn đề liên quan