用于 List<object> 的 c# JSON.Net NullValueHandling

标签 c# json null json.net

我有这样一个类:

public class media
{
    public string id { get; set; }
    public string code { get; set; }
    public string url { get; set; }
    public string comment_count { get; set; }
    public string like_count { get; set; }

    public int no { get; set; }
}

我创建一个列表

List<media> my_stack = new List<media>();

我在列表中添加了一些媒体;

media new_media = new media();

new_media.id = "some id";
new_media.code = "value";
new_media.url = "value";

my_stack.Add(new_media);

new_media = new media();

new_media.id = "some id";
new_media.url = "value";

my_stack.Add(new_media);

new_media = new media();

new_media.id = "some id";
new_media.url = "value";
new_media.code = "value";
new_media.comment_count = "value";
new_media.like_count = "value";

my_stack.Add(new_media);

当我序列化对象时 List<media> media结果充满了空属性。

[
{"id":"some id", "code":"value", "url":"value","comment_count":null, "like_count": null, "no":0},
{"id":"some id", "code":null, "url":"value","comment_count":null, "like_count": null, "no":0},
{"id":"some id", "code":"value", "url":"value","comment_count":"value", "like_count": "value", "no":0}
]

我不想为空值。 我尝试了两件关于 NullValueHandling 的事情,但对我不起作用。

1:How to ignore a property in class if null, using json.net

2:http://www.tecsupra.com/serializing-only-some-properties-of-an-object-to-json-using-newtonsoft-json-net/

我认为 NullValueHandling 不适用于 List<object>序列化?

如何删除 List json 中的空值?

最佳答案

据我了解你的问题,你不需要 json 对象数组中你没有设置值的属性——它们将被设置为 null,就像你现在得到的那样。 那样的话,创建一个匿名对象然后序列化为json怎么样?创建一个匿名对象数组,每个对象中只有你需要的属性,然后进行 json 转换。为此使用 JObject。

http://www.newtonsoft.com/json/help/html/CreateJsonAnonymousObject.htm

关于用于 List<object> 的 c# JSON.Net NullValueHandling,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39135226/

相关文章:

c# - 关于在 C# 中运行时关闭窗体

javascript - 如何在jQuery中通过Request Body提交JSON数据?

c - 通过更改 C 中的函数调用来节省代码空间

java - 带有通配符和空值的sql语句

json - 将 webGL(ThreeJS) 与常规 HTML/CSS 网站混合

java - Option[T] 类的意义何在?

c# - XmlAttribute/XmlText 不能用于编码复杂类型

c# - 如何使用 LINQ 打印数字

c# - 如何从给定日期获取下个月的结束日期

c - 消息帕克 : How to compose an array of maps in msgpuck?