Skip to content

Serializing bigint value to JSON emits incorrect JSON #20989

@argium

Description

@argium

Prerequisites

Steps to reproduce

PS> $i = [bigint]"93839802329326"
PS> $obj = @{"val" = $i}
PS> ConvertTo-Json $obj 

{
    "val":  {
                "IsPowerOfTwo":  false,
                "IsZero":  false,      
                "IsOne":  false,       
                "IsEven":  true,
                "Sign":  1
            }
}

Note that casting the variable inline as [int64] does work correctly:

PS> $i = [bigint]"93839802329326"
PS> $obj = @{"val" = [int64]$i}
PS> ConvertTo-Json $obj 
{
    "val":  93839802329326
}

and casting the variable inline as [bigint] does not:

PS> $i = [bigint]"93839802329326"
PS> $obj = @{"val" = [bigint]$i}
PS> ConvertTo-Json $obj 
{
  "val": {
    "IsPowerOfTwo": false,
    "IsZero": false,
    "IsOne": false,
    "IsEven": true,
    "Sign": 1
  }
}

Expected behavior

{
    "val":  93839802329326
}

Actual behavior

{
    "val":  {
                "IsPowerOfTwo":  false,
                "IsZero":  false,      
                "IsOne":  false,       
                "IsEven":  true,
                "Sign":  1
            }
}

Error details

No response

Environment data

Name                           Value
----                           -----
PSVersion                      7.4.0
PSEdition                      Core
GitCommitId                    7.4.0
OS                             Microsoft Windows 10.0.19045
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Visuals

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    In-PRIndicates that a PR is out for the issueIssue-Enhancementthe issue is more of a feature request than a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions