如何将解析后的json文件从json转换回json



我正在使用powershell ConvertTo JSON生成一个解析的JSON文件。在这里之前一切都很好,因为现在我想把它从json转换过来,使用值,然后用以前的值把它转换回json。但当我将文件转换回json时,它只显示值为null。。。有什么办法解决这个问题吗?

以下是我创建解析文件的代码:

$secFile = "C:somefoldercreds.json"
$in = Get-Content $secFile | ConvertFrom-Json
[ordered]@{
pcname='ENTER HERE';
share='\$in.pcnameC$';
filename='ENTER HERE';
destfilepath='ScriptsCert';
destfile='$in.share$in.destfilepath$in.filename';
RDdestfile='C:$in.destfilepath';
Username="ENTER HERE";
Password="ENTER HERE";
EncryptedPassword=""
} | ConvertTo-Json | Foreach {[System.Text.RegularExpressions.Regex]::Unescape($_)} | Out-File "$secFile"

以下是将文件转换回json:的代码

[ordered]@{
pcname=$in.pcname;
share=$in.share;
filename=$in.filename;
destfilepath=$in.destfilepath;
destfile=$in.destfile;
RDdestfile=$in.RDdestfile;
Username=$in.Username;
Password="";
EncryptedPassword="$secString"
} | ConvertTo-Json | Out-File "$secFile"

这是将其转换回json:后的文件

{
"pcname":  null,
"share":  null,
"filename":  null,
"destfilepath":  null,
"destfile":  null,
"RDdestfile":  null,
"Username":  null,
"Password":  "",
"EncryptedPassword":  "01000000d08c9ddf0115d1118c7a00c04fc297eb010000006f6d3ce161a681428efe68b51827a6640000000002000000000003660000c0000000100000002a6a1ff60cb280662a9578cb47926a4d0000000004800000a000000010000000a65a1cd7137935dbfcd22bcdc685f52a20000000b87554b4f6f6dbe655cd525a894e1c7d1180b4db121385e57b218fa772ad1d441400000048453bb6e137ed437de3e4ecbd855429ddfc1fba"
}

这在我解析文件之前就起作用了。所以这不可能是错误,对吧

我既不是powershell也不是json专业人员,所以我真的希望能得到很好的帮助

问候语

Martin

如果我以您的例子导出并重新导入,我会得到一个错误。

[pscustomobject]@{
pcname='ENTER HERE';
share='\ENTER HEREC$';
filename='ENTER HERE';
destfilepath='somefolder';
#destfile='$in.share$in.destfilepath$in.filename';
RDdestfile='C:$in.destfilepath';
Username="ENTER HERE";
Password="ENTER HERE";
EncryptedPassword=""
} | Convertto-Json -OutVariable results |
Foreach {[System.Text.RegularExpressions.Regex]::Unescape($_)} |
Out-File $secFile
Get-Content $secFile | Convertfrom-json

错误

At line:14 char:28
+     Get-Content $secFile | Convertfrom-json
+                            ~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [ConvertFrom-Json], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand

但是,如果我只是简单地删除正则表达式unscaping,它就可以正常工作。

[pscustomobject]@{
pcname='ENTER HERE';
share='\ENTER HEREC$';
filename='ENTER HERE';
destfilepath='somefolder';
#destfile='$in.share$in.destfilepath$in.filename';
RDdestfile='C:$in.destfilepath';
Username="ENTER HERE";
Password="ENTER HERE";
EncryptedPassword=""
} | Convertto-Json -OutVariable results| Out-File $secFile
Get-Content $secFile | Convertfrom-json

输出

pcname            : ENTER HERE
share             : \ENTER HEREC$
filename          : ENTER HERE
destfilepath      : somefolder
RDdestfile        : C:$in.destfilepath
Username          : ENTER HERE
Password          : ENTER HERE
EncryptedPassword : 

这是必需的吗?

相关内容

  • 没有找到相关文章

最新更新