如何删除json字符串中的空值

use*_*888 11 .net c# asp.net json

嗨,我正在使用以下课程

Public List<string> name;
Public List<string> midname;
Run Code Online (Sandbox Code Playgroud)

一旦我序列化它,我得到以下输出,如

 {"name":[hari],"midname":null}
Run Code Online (Sandbox Code Playgroud)

但我希望我的回答是这样的

{"name":[hari]}
Run Code Online (Sandbox Code Playgroud)

它不应该显示具有null值的class属性,而且我正在使用c#.net框架.

p.s*_*w.g 15

完整的答案取决于你如何序列化你的课程.

如果您正在使用数据协定来序列化您的类,请设置 EmitDefaultValue = false

[DataContract]
class MyClass
{
    [DataMember(EmitDefaultValue = false)]
    public List<string> name;

    [DataMember(EmitDefaultValue = false)]
    public List<string> midname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果您正在使用Json.Net,请尝试使用

class MyClass
{
    [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
    public List<string> name;

    [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
    public List<string> midname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

或者用全局设置它 JsonSerializerSettings.NullValueHandling = NullValueHandling.Ignore


Sac*_*hin 7

如果您正在使用Json.Net那么您可以通过像这样装饰您的财产来尝试这个

[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public List<string> name { get; set; }
Run Code Online (Sandbox Code Playgroud)


Dan*_*ohr 5

就像pswg所说的那样,最好首先正确地进行序列化。没有空序列化的例子可以看出这里

例如

var json = JsonConvert.SerializeObject(
        objectToSerialize,
        new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore});
Run Code Online (Sandbox Code Playgroud)