Ошибка недопустимого JSON-примитива при преобразовании файла JSON
При попытке конвертировать JSON файл через PowerShell:
$json = Get-Content "C:\folder1\test.txt"
$json | ConvertFrom-Json
write-output $json
Я получаю следующую ошибку:
недействительный примитив json: [. (System.argunment.exception)
Ответы
Ответ 1
Я выхожу на конечность здесь, так как вы не указали свои входные данные или полное сообщение об ошибке, но я предполагаю, что ваша проблема вызвана несоответствием формата между выходными Get-Content
и вводами ConvertFrom-Json
ожидает.
Get-Content
считывает входной файл в массив строк, тогда как ConvertFrom-Json
ожидает данные JSON в одной строке. Кроме того, трубопровод $json
в ConvertFrom-Json
не меняет значение $json
.
Измените свой код на следующий, и ошибка должна исчезнуть (при отсутствии синтаксической ошибки в ваших входных данных):
$json = Get-Content 'C:\folder1\test.txt' | Out-String | ConvertFrom-Json
Write-Output $json
Ответ 2
Вы должны проверить свой входной файл JSON для символов, которые не были экранированы с помощью "\"
Я также видел эту проблему с входным JSON файлом, который был неправильно отформатирован следующим образом:
{
Object1
}
{
Object2
}
Исправленный формат:
[{
Object1
},
{
Object2
}]
Как только формат был исправлен, у меня больше не было проблем.
Ответ 3
Вы получите эту ошибку, если ваши входные данные начинаются так:
data: [
{
...
},
{
...
}
]
Вам нужно удалить data:
(и в этом примере есть только [
и ]
):
[
{
...
},
{
...
}
]