C# JsonSerializer.Serialize<List<BigInteger>>(numbers) 将输出带有 0 列表的 json

C# JsonSerializer.Serialize<List<BigInteger>>(numbers) will output a json with a list of 0's

using System;
using System.Collections.Generic;
using System.Text.Json;
using System.IO;
using System.Numerics;

List<BigInteger> numbers = new List<BigInteger>();
numbers.Add(4);
numbers.Add(3);
File.WriteAllText("example.json", JsonSerializer.Serialize<List<BigInteger>>(numbers);
numbers = JsonSerializer.Deserialize<List<BigInteger>>(File.ReadAllText("example.json"));
foreach(BigInteger i in numbers)
{
      Console.WriteLine(i);
}

output: 0 0

expected: 4 3

Jsonserializer 似乎没有正确序列化 BigInteger 列表。 我在这里做错了什么?

您是说 knownPrimes insted of numbers 吗?

var knownPrimes= JsonSerializer.Deserialize<List<BigInteger>>

(File.ReadAllText("example.json"));

更新 您可以将其用于工作参考或测试

List<BigInteger> numbers = new List<BigInteger>();
            numbers.Add(4);
            numbers.Add(3);
            File.WriteAllText("example.json", JsonConvert.SerializeObject(numbers));
            var number = JsonConvert.DeserializeObject<List<BigInteger>>(File.ReadAllText("example.json"));
            foreach (BigInteger i in numbers)
            {
                Console.WriteLine(i);
            }