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:address@domain.TLD",
      		"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:address@domain.TLD",
      		"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:address@domain.TLD",
      		"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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions