rj-action-library/Runtime/Text/JSON/Serializers/BigIntegerSerializer.cs

39 lines
888 B
C#
Raw Normal View History

2024-05-12 17:03:20 +00:00
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using System;
namespace Rokojori
{
public class BigIntegerSerializer: CustomSerializer
{
public override List<Type> HandlingTypes()
{
2025-09-26 12:00:59 +00:00
return new List<Type>(){ typeof( System.Numerics.BigInteger ) };
2024-05-12 17:03:20 +00:00
}
public override JSONData Serialize( object value )
{
2025-09-26 12:00:59 +00:00
var bigInteger = (System.Numerics.BigInteger) value;
2024-05-12 17:03:20 +00:00
return new JSONValue( bigInteger.ToString( "R" ) );
}
public override void Deserialize( JSONData data, Reference referenceRelation )
{
if ( referenceRelation.target == null )
{
return;
}
2025-09-26 12:00:59 +00:00
var bigInteger = System.Numerics.BigInteger.Parse( data.stringValue );
2024-05-12 17:03:20 +00:00
referenceRelation.AssignValue( bigInteger );
}
}
}