c#JSON.Net NullValueHandling for List <object>

时间:2016-08-25 01:11:42

标签: 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);

当我在SerializeObject List<media> media结果中充满了null属性时。

[
{"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中删除空值?

1 个答案:

答案 0 :(得分:1)

正如我理解你的问题,你不需要你曾经为你设置值的json对象数组中的属性 - 这将被设置为null,就像你现在得到的那样。 在这种情况下,如何创建一个匿名对象,然后将其序列化为json?创建一个匿名对象数组,只有每个对象所需的属性,然后执行json转换。使用JObject。

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