2016-08-25 96 views
2

我有一类这样的:C#JSON.Net NullValueHandling的列表<object>

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结果是全空的属性。

[ 
{"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} 
] 

我不想null值。 我尝试了两件关于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

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

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

+0

谢谢。这对我有用。 –