作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在尝试使用 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/
我是一名优秀的程序员,十分优秀!