【问题标题】:Serializing a collection in JSON.NET not working在 JSON.NET 中序列化集合不起作用
【发布时间】:2019-01-26 18:49:37
【问题描述】:

我正在尝试使用 C# 中的类来收集网页的 URL 及其名称。我正在使用 Newtonsoft.Json 将它们序列化为 JSON 字符串。

这是我的网页对象类

class WebPage
{
    private string Name;
    private string URL;

    public WebPage(string name, string uRL)
    {
        Name = name;
        URL = uRL;
    }

    public string GetName()
    {
        return Name;
    }

    public string GetURL()
    {
        return URL;
    }
}

我正在使用一个名为 pageCollectionList<WebPage>,我正在将所有网页添加到其中,但是当我像这样运行代码时:

string json = JsonConvert.SerializeObject(pageCollection);

字符串输出只是空括号。这里有什么问题?

【问题讨论】:

  • 你需要在你的类中有一个默认的构造函数和类中的公共属性才能工作。
  • @ChetanRanpariya 哎呀,这似乎确实是问题所在。谢谢
  • @ChetanRanpariya 你能指出提到这一点的文档吗?

标签: c# class serialization json.net


【解决方案1】:

好吧,正如 cmets 很快说的那样,我的问题是我的财产是私有的。将它们设置为 public 并删除 getter/setter 并解决了

【讨论】:

  • 不,代码根本没有属性,只有私有字段。 GetName() 也不是“吸气剂”
【解决方案2】:

我建议您创建一个仅包含您的属性的适当 POCO。然后确保将它们公开。在一个单独的类中,您还需要包含一个构造函数。您拥有的代码将不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 2013-06-19
    • 1970-01-01
    • 2016-10-28
    相关资源
    最近更新 更多