gpt4 book ai didi

json - 将 Excel 中的参数用引号括起来

转载 作者:行者123 更新时间:2023-12-03 01:03:07 24 4
gpt4 key购买 nike

我们正在尝试使用 PowerShell 填充一些 JSON 文件。参数位于 Excel 工作表中,大多数 JSON 参数都使用引号 ("") 填充。但是,有一些不这样做,这些会导致部署失败。

有没有办法从 excel 中获取信息,然后确保它在 JSON 文件中用引号括起来。

代码如下:

$ws = $wb.Worksheets.Item(1)
$data = Get-Content -Path "$path\$jsonfile" -Raw | ConvertFrom-Json
$Row = 2
$col = 2
$data.parameters.client.value = $ws.Cells.Item($Row, $col).Value()
$data.parameters.user.value = $ws.Cells.Item($Row, $col).Offset(1, 0).Value()
$data.parameters.business.value = $ws.Cells.Item($Row, $col).Offset(2, 0).Value()
$data.parameters.dev.value = $ws.Cells.Item($Row, $col).Offset(3, 0).Value()

$data | ConvertTo-Json -Depth 9 | % {
[System.Text.RegularExpressions.Regex]::Unescape($_)
} | Set-Content -Path "$newpath\$JSONFile"

最佳答案

是否ConvertTo-Json在值周围加引号取决于该值的类型。字符串放在引号中,其他类型如 Integer 或 Boolean 则不是。

示范:

PS C:\> [PSCustomObject]@{'foo'=1} | ConvertTo-Json{    "foo":  1}PS C:\> [PSCustomObject]@{'foo'='1'} | ConvertTo-Json{    "foo":  "1"}

Presumably some of the cells in your Excel sheet contain numbers rather than text (which are then converted accordingly), while the application processing the JSON data expects them to be strings.

I see two ways you could handle this:

  • Cast the values to string:

    $data.parameters.client.value = [string]$ws.Cells.Item($Row, $col).Value
  • 而不是属性 Value使用属性 Text ,它将单元格的值作为字符串返回:
    $data.parameters.client.value = $ws.Cells.Item($Row, $col).Text

关于json - 将 Excel 中的参数用引号括起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53017342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com