【问题标题】:C# JsonSerializer.Serialize<List<BigInteger>>(numbers) will output a json with a list of 0's [closed]C# JsonSerializer.Serialize<List<BigInteger>>(numbers) 将输出一个包含 0 列表的 json [关闭]
【发布时间】:2021-01-15 01:22:44
【问题描述】:
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);
}

输出:0 0

预计:4 3

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

【问题讨论】:

标签: c# biginteger system.text.json


【解决方案1】:

您的意思是 knownPrimes 插入 数字 吗?

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);
            }

【讨论】:

  • 不,我指的是数字而不是已知素数。
  • 我更新了我的答案,我使用 JsonConvert.SerializeObject 和 JsonConvert.DeserializeObject 代替,如果有帮助,请将其标记为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-08
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多