当前位置: 首页 > 面试题库 >

Powershell ConvertTo-JSON缺少嵌套级别

仲孙焱
2023-03-14
问题内容

如果嵌套太深,看起来Powershell在导出为JSON时会切断数据。我的对象层次结构如下所示:

Main Object
    Metadata
    More Metadata
    Collection of Other object Sources
        Collection of data used by these sources

由于某种原因,当我转换为JSON时,powershell会将第三级(这些源使用的数据的集合)导出为空字符串,即使它是添加了各种NoteProperty的对象数组。例如:

$test = New-Object -TypeName PSObject

$obj = New-Object -TypeName PSObject
$obj | Add-Member -MemberType NoteProperty -Name "Name" -Value "adsf"

$test2 = New-Object -TypeName PSObject
$test2 | Add-Member -MemberType NoteProperty -Name "ArrayTest" -Value @($obj, $obj)

$test3 = New-Object -TypeName PSObject
$test3 | Add-Member -MemberType NoteProperty -Name "ArrayTest" -Value @($obj, $obj, $obj)

$test | Add-Member -MemberType NoteProperty -Name "CollectionTest" -Value @($test2, $test3)

这将导致以下JSON字符串:

PS C:\Users\user\projects\Powershell> $test | ConvertTo-Json
{
    "CollectionTest":  [
                           {
                               "ArrayTest":  " "
                           },
                           {
                               "ArrayTest":  "  "
                           }
                       ]
}

转换为XML会导致类似情况:

<?xml version="1.0"?>
<Objects>
  <Object Type="System.Management.Automation.PSCustomObject">
    <Property Name="CollectionTest" Type="System.Object[]">
      <Property Type="System.Management.Automation.PSCustomObject">
        <Property Type="System.String">@{ArrayTest=System.Object[]}</Property>
        <Property Name="ArrayTest" Type="System.Management.Automation.PSNoteProperty">System.Object[]</Property>
      </Property>
      <Property Type="System.Management.Automation.PSCustomObject">
        <Property Type="System.String">@{ArrayTest=System.Object[]}</Property>
        <Property Name="ArrayTest" Type="System.Management.Automation.PSNoteProperty">System.Object[]</Property>
      </Property>
    </Property>
  </Object>
</Objects>

在Powershell中是否存在某种对象嵌套限制?


问题答案:

从Get-Help ConvertTo-JSON:

-Depth
指定JSON表示形式中包含多少级所包含的对象。预设值为2。

设置-Depth参数可以保留数据的深度。



 类似资料:
  • 如果简化,将得到以下JSON实现: 数据(实体)- 我假设我将首先解密数据对象,从中获取一个类型,然后从该类型使用字符串“Data”中的必要类型进行解密,但我的想法失败了。有没有办法解决这个问题? 我创造了这种类型的正常实体 在“数据”字段中,我放置一个对象,该对象也由 当试图用 我犯了个错误 com.fasterxml.jackson.databind.exc.不匹配的输入异常:无法构造实例(尽

  • 问题内容: 我正在尝试将JSON转换为CSV文件,可用于进一步分析。我的结构存在的问题是,当我转换JSON文件时,我有很多嵌套的字典/列表。 我尝试使用pandas ,但它只会使第一级扁平化。 任何想法如何讨好整个JSON文件,以便我可以为单个(在本例中为虚拟机)条目创建到CSV文件的单行输入?我已经尝试过这里发布的几种解决方案,但是我的结果始终只是将第一级展平。 这是示例JSON(在这种情况下,

  • 问题内容: 我有正在使用nodeJS读取的csv文件。我在阅读之前将每个文件转换为文本。 文件中的每一行都有以’=’分隔的数据。 每行看起来像 “ =“之前的第一部分代表我应用程序中json对象的索引。我的目的是解析此数据并为其构建json表示,以便上面的行成为 使用javascript / node js; 如何将应该表示嵌套JSON键序列的字符串转换为上述json对象? 问题答案: 您可以分割

  • 问题内容: 我有一个从数据库(JSON MySQL中的数据存储)检索数据的程序。 我设法得到对象。输出为: JSON对象: 我需要有关如何处理数据并将信息放入不同数组/对象的建议。例如 谢谢。 问题答案: 您可以使用Jackson Api来实现。 您必须创建与json对象相同的Pojo类(该类应具有“ attributes”,“ uuid”之类的成员)。 这是您必须使用的类 和代码 现在,您可以使

  • 问题内容: 我正在使用LESS改进我的CSS,并试图将一个类嵌套在一个类中。层次结构相当复杂,但是由于某种原因,我的嵌套无法正常工作。我有这个: 我无法上班。它只是显示位。如果我这样做就可以了: 我想窝在虽然。有任何想法吗? 问题答案: 该角色具有的功能关键字,居然(事我不知道在写答案的时刻)。可以这样写: 并且将生成的CSS如下所示: 作为记录,@ grobitto是第一个发布此信息的人。 [原