Powershell 如何从JSON文件中获取数字?

Powershell 如何从JSON文件中获取数字?,powershell,powershell-2.0,powershell-3.0,Powershell,Powershell 2.0,Powershell 3.0,仅当严重性设置为2时,我试图从JSON文件中提取内容以查找作业的错误描述,但遇到以下错误消息: Error formatting a string: Input string was not in a correct format.. At line:3 char:10 + $Sev = $("{$i`:N1}" -f $data.value.Severity) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo

仅当严重性设置为2时,我试图从JSON文件中提取内容以查找作业的错误描述,但遇到以下错误消息:

Error formatting a string: Input string was not in a correct format.. At line:3 char:10 + $Sev = $("{$i`:N1}" -f $data.value.Severity) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: ({:N1}:String) [], RuntimeException + FullyQualifiedErrorId : FormatError JSON文件内容:

{ 身份证号码:13253665, 电话:95521,, 说明:序列失败, 严重程度:2, SequenceStepId:null, SequenceStep:空 } { 身份证号码:13253662, 电话:95521,, 说明:缺少文件variable.htm。, 严重程度:4, SequenceStepId:null, SequenceStep:空 }
我想你误解了它的工作原理。它要求格式字符串作为第一个操作数,数组或单个值作为第二个操作数

$format_string -f $val1, $val2, $val3
$format_string -f $array
$format_string -f $single_value
格式字符串中的占位符{0}表示第二个操作数数组的第一个元素,{1}表示第二个元素,依此类推。如果指定了格式化说明以及占位符,例如{0:N5},用于格式化具有给定位数的数字,则还需要确保值的类型适当。如果要将数字格式与字符串值组合,则需要先将值转换为数字

PS C:\> $s = '3' PS C:\> '{0:N5}' -f $s 3 PS C:\> '{0:N5}' -f [int]$s 3.00000
请发布完整的json,您发布的内容不完整,不会帮助其他人重现问题。该文件实际上不包含json,只是类似json的内容。JSON对象序列本身不是有效的JSON,这需要将其包装到数组中。尝试类似于选择字符串、文件名|%{{$}}| convertfromjson的方法。只有将所有对象格式化为一行中给定的所有属性时,这才能正常工作 PS C:\> $i = 1 PS C:\> $a = 1, 3, 6 PS C:\> "{${i}:N5}" -f $a 3.00000 PS C:\> $i = 1 PS C:\> $a = 1, 3, 6 PS C:\> '{0:N5}' -f $a[$i] 3.00000
if ($data.value[$i].Severity -eq 2) {
    Write-Host $data.value[$i].Description
}