При попытке преобразовать файл в формате JSON с помощью PowerShell:«Invalid примитивной JSON» ошибка при преобразовании файла JSON
$json = Get-Content "C:\folder1\test.txt"
$json | ConvertFrom-Json
write-output $json
Я получаю следующее сообщение об ошибке:
invalid json primitive : [.
(system.argunment.exception)
Get-Content будет включать символы новой строки, поэтому вы захотите либо передать команду -join следующим образом: $ json = (Get-Content 'C: \ folder1 \ test.txt') -join "' n "| ConvertFrom-Json или просто передать -Raw-переключатель: $ json = (Get-Content 'C: \ folder1 \ test.txt') -Raw | ConvertFrom-Json Ссылка: https://technet.microsoft.com/en-us/library/Hh849898.aspx#code-snippet-4 –
@DerekNutile 'Get-Content' создает массив строк (по одному для каждой строки из файла), который должен быть преобразован в одну строку перед подачей данных в 'ConvertFrom-Json' (иначе командлет попытается преобразовать каждую строку отдельно). Преобразование может быть достигнуто несколькими способами, например, путем объединения массива с символами новой строки, путем считывания файла с использованием параметра «-Raw» (только PowerShell v3 и только для новых) или путем прямого вывода результатов через «Out-String» , как в моем ответе. –