То, будет ли ConvertTo-Json
заключать в кавычки значение, зависит от типа этого значения.Строки заключаются в кавычки, другие типы, такие как Integer или Boolean, не являются.
Демонстрация:
PS C:\> <b>[PSCustomObject]@{'foo'=1} | ConvertTo-Json</b>
{
"foo": 1
}
PS C:\> <b>[PSCustomObject]@{'foo'='1'} | ConvertTo-Json</b>
{
"foo": "1"
}
Предположительно, некоторые ячейки на листе Excel содержат числа, а не текст (которые затемпреобразовано соответственно), в то время как приложение, обрабатывающее данные JSON, ожидает, что они будут строками.
Я вижу два способа, которыми вы могли бы справиться с этим:
Приведите значения в строку:
$data.parameters.client.value = [string]$ws.Cells.Item($Row, $col).Value
Вместо свойства Value
используйте свойство Text
, которое возвращает значение ячейки в виде строки:
$data.parameters.client.value = $ws.Cells.Item($Row, $col).Text