Skip to content

ConvertTo-Json produces inconsistent output for Guid depending on input method #26635

@yotsuda

Description

@yotsuda

Prerequisites

Summary

ConvertTo-Json produces different JSON output for the same Guid value depending on whether it is passed via pipeline or via -InputObject parameter.

Steps to reproduce

$guid = [guid]"12345678-1234-1234-1234-123456789abc"

# Via pipeline
$guid | ConvertTo-Json -Compress

# Via -InputObject parameter
ConvertTo-Json -InputObject $guid -Compress

Expected behavior

# Both methods should produce the same output
"12345678-1234-1234-1234-123456789abc"

Actual behavior

# Via pipeline (object expansion)
{"value":"12345678-1234-1234-1234-123456789abc","Guid":"12345678-1234-1234-1234-123456789abc"}

# Via -InputObject (string)
"12345678-1234-1234-1234-123456789abc"

Environment data

Name                           Value
----                           -----
PSVersion                      7.5.1
PSEdition                      Core
GitCommitId                    7.5.1
OS                             Microsoft Windows 10.0.26100
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.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