Skip to content

Show-ObjectTree does not enumerate object data from PSObject converted from JSON via ConvertFrom-JSON. #242

@RokeJulianLockhart

Description

@RokeJulianLockhart
  1. Prerequisites

  2. Steps to reproduce

    As https://github.com/orgs/PowerShell/discussions/21343#discussioncomment-8810840 states, it doesn't appear to parse the object:

    1. Initialize a variable as JSON

      $Values = @'
      {
      	"Candidate":
      	{
      		"Name": {
      			"3rd": "Surname",
      			"1st": "Forename",
      			"2nd": "Middle name"
      		},
      		"Date of Birth": "+1582-10-15",
      		"E-mail Address": "mailTo:[email protected]",
      		"Mobile Telephone Number": "tel:+00-0000-000000",
      		"Blood Group": "" // Unknown
      	},
      	"Mother":
      	{
      		"Name": {
      			"3rd": "Surname",
      			"1st": "Forename",
      			"2nd": "Middle name"
      		},
      		"Date of Birth": "+1582-10-15",
      		"E-mail Address": "mailTo:[email protected]",
      		"Mobile Telephone Number": "tel:+00-0000-000000",
      	},
      	"Father":
      	{
      		"Name": {
      			"3rd": "Surname",
      			"1st": "Forename",
      			"2nd": "Middle name"
      		},
      		"Date of Birth": "+1582-10-15",
      		"E-mail Address": "mailTo:[email protected]",
      		"Mobile Telephone Number": "tel:+00-0000-000000",
      	},
      }
      '@
    2. Pass the value via a pipe to Show-ObjectTree.

    Expected behavior

    It should display as Get-Process | Show-ObjectTree does:

    Screenshot_20240316_174327

  3. Actual behavior

    1. Visuals

        1. $Values | Show-ObjectTree
        2. Screenshot_20240316_104948

        1. $Values | ConvertFrom-JSON | Show-ObjectTree
        2. Screenshot_20240316_105413

        3. When that expansion indicator is invoked, it disappears:

          Screenshot_20240316_105424

  4. Error details

    Get-Error

    returns $Null.

  5. Environment data

    {
      "PSVersion": {
        "Major": 7,
        "Minor": 4,
        "Patch": 1,
        "PreReleaseLabel": null,
        "BuildLabel": null
      },
      "OS": "cpe:/o:opensuse:tumbleweed:20240314",
      "PSRemotingProtocolVersion": {
        "Major": 2,
        "Minor": 3,
        "Build": -1,
        "Revision": -1,
        "MajorRevision": -1,
        "MinorRevision": -1
      },
      "PSEdition": "Core",
      "GitCommitId": "7.4.1",
      "Platform": "Unix",
      "PSCompatibleVersions": [
        {
          "Major": 1,
          "Minor": 0,
          "Build": -1,
          "Revision": -1,
          "MajorRevision": -1,
          "MinorRevision": -1
        },
        {
          "Major": 2,
          "Minor": 0,
          "Build": -1,
          "Revision": -1,
          "MajorRevision": -1,
          "MinorRevision": -1
        },
        {
          "Major": 3,
          "Minor": 0,
          "Build": -1,
          "Revision": -1,
          "MajorRevision": -1,
          "MinorRevision": -1
        },
        {
          "Major": 4,
          "Minor": 0,
          "Build": -1,
          "Revision": -1,
          "MajorRevision": -1,
          "MinorRevision": -1
        },
        {
          "Major": 5,
          "Minor": 0,
          "Build": -1,
          "Revision": -1,
          "MajorRevision": -1,
          "MinorRevision": -1
        },
        {
          "Major": 5,
          "Minor": 1,
          "Build": -1,
          "Revision": -1,
          "MajorRevision": -1,
          "MinorRevision": -1
        },
        {
          "Major": 6,
          "Minor": 0,
          "Build": -1,
          "Revision": -1,
          "MajorRevision": -1,
          "MinorRevision": -1
        },
        {
          "Major": 7,
          "Minor": 0,
          "Build": -1,
          "Revision": -1,
          "MajorRevision": -1,
          "MinorRevision": -1
        }
      ],
      "WSManStackVersion": {
        "Major": 3,
        "Minor": 0,
        "Build": -1,
        "Revision": -1,
        "MajorRevision": -1,
        "MinorRevision": -1
      },
      "SerializationVersion": {
        "Major": 1,
        "Minor": 1,
        "Build": 0,
        "Revision": 1,
        "MajorRevision": 0,
        "MinorRevision": 1
      }
    }
  6. Version

    1. PowerShell

      snap install $(what-snap JSNnoJl3EqkMuWoy5Dgq8PMqZ0uNcpie | awk '{print $2}') --classic --channel=latest/stable --revision 264
    2. Microsoft.PowerShell.ConsoleGuiTools

      1. Get-InstalledModule -Name 'Microsoft.PowerShell.ConsoleGuiTools' | Select-Object -ExpandProperty 'Version'
      2. https://github.com/PowerShell/GraphicalTools/releases/tag/v0.7.6.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions