ConsoleGuiTools icon indicating copy to clipboard operation
ConsoleGuiTools copied to clipboard

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

Open RokeJulianLockhart opened this issue 1 year ago • 2 comments
trafficstars

  1. Prerequisites

    • [X] Write a descriptive title
    • [X] Make sure you are able to repro it on the latest version
    • [X] Search the existing issues https://github.com/PowerShell/GraphicalTools/issues?q=is%3Aissue+is%3Aopen+show-objecttree returned 0 results of relevance.
  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

RokeJulianLockhart avatar Mar 16 '24 17:03 RokeJulianLockhart