JsonConvert.SerializeObject 和空字符串的处理



>我有一个从包含空字符串的 Web 服务返回的对象。该对象称为Docs对象,对象Docs.Rows是一个List<List<string>>,然后在下面的代码中用作filteredRows。当我使用 JsonConvert.SerializeObject 时,它会删除每个具有空字符串的列。这些列很重要。

我尝试了以下两种方法:

JsonConvert.SerializeObject(filteredRows,
    Formatting.Indented,
    new JsonSerializerSettings { });
JsonConvert.SerializeObject(filteredRows,
    Formatting.Indented,
    new JsonSerializerSettings { NullValueHandling = NullValueHandling.Include });

所有具有空字符串的列仍在删除。如何让它保留它们?

过滤的行也定义为 List<List<string>> 。我可以将其序列化为定义的对象吗?

你能提供一个演示问题的示例程序吗? 像下面这样的简单示例似乎工作正常。 序列化期间不会删除 null 字符串和空字符串。 可能是您的过滤过程实际上删除了这些值吗?

class Program
{
    static void Main(string[] args)
    {
        List<List<string>> rows = new List<List<string>>
        {
            new List<string>
            {
                "A",
                null,
                ""
            },
            new List<string>
            {
                null,
                "B",
                ""
            },
            new List<string>
            {
                "",
                null,
                "C"
            }
        };
        string json = JsonConvert.SerializeObject(rows);
        Console.WriteLine(json);
    }
}

输出:

[["A",null,""],[null,"B",""],["",null,"C"]]

相关内容

  • 没有找到相关文章

最新更新