相关疑难解决方法(0)

如何使用json.net忽略类中的属性null

我正在使用Json.NET将类序列化为JSON.

我有这样的课:

class Test1
{
    [JsonProperty("id")]
    public string ID { get; set; }
    [JsonProperty("label")]
    public string Label { get; set; }
    [JsonProperty("url")]
    public string URL { get; set; }
    [JsonProperty("item")]
    public List<Test2> Test2List { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想将添加JsonIgnore()属性,Test2List只有当财产Test2Listnull.如果它不为null,那么我想将它包含在我的json中.

c# json.net

497
推荐指数
10
解决办法
30万
查看次数

忽略Json.net中的空字段

我有一些数据,我必须序列化为JSON.我正在使用JSON.NET.我的代码结构与此类似:

public struct structA
{
    public string Field1;
    public structB Field2;
    public structB Field3;
}

public struct structB
{
    public string Subfield1;
    public string Subfield2;
}
Run Code Online (Sandbox Code Playgroud)

问题是,我的JSON输出需要只有Field1OR Field2Field3- 它取决于使用哪个字段(即不为空).默认情况下,我的JSON看起来像这样:

{
    "Field1": null,
    "Field2": {"Subfield1": "test1", "Subfield2": "test2"},
    "Field3": {"Subfield1": null, "Subfield2": null},
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用NullValueHandling.Ignore,但这给了我看起来像这样的JSON:

{
    "Field2": {"Subfield1": "test1", "Subfield2": "test2"},
    "Field3": {}
}
Run Code Online (Sandbox Code Playgroud)

而我需要的是:

{
    "Field2": {"Subfield1": "test1", "Subfield2": "test2"},
}
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法来实现这一目标?

.net c# serialization json json.net

67
推荐指数
2
解决办法
5万
查看次数

删除发送到Json MVC的对象的null属性

namespace Booking.Areas.Golfy.Models
{
    public class Time
    {
        public string   time            { get; set; }
        public int      holes           { get; set; }
        public int      slots_available { get; set; }
        public decimal? price           { get; set; }
        public int?     Nextcourseid    { get; set; }

        public bool ShouldSerializeNextcourseid
        {
            get
            {
                return this.Nextcourseid != null;
            }
        }

        public bool? allow_extra { get; set; }

        public bool ShouldSerializeallow_extra
        {
            get
            {
                return this.allow_extra != null;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


namespace Booking.Areas.Golfy.Controllers
{
    public class …
Run Code Online (Sandbox Code Playgroud)

c# serialization json asp.net-mvc-5

11
推荐指数
2
解决办法
1万
查看次数

MVC4 Action返回没有null的JsonResult

我有一个动作,它返回一个特定类的对象的JsonResult.我已经使用一些attrib来装饰这个类的属性以避免使用null字段.类定义是:

    private class GanttEvent
    {
        public String name { get; set; }

        [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
        public String desc { get; set; }

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

在我的Action中我使用了一个对象

    var res = new List<GanttEvent>();
Run Code Online (Sandbox Code Playgroud)

我回来使用:

    return Json(res, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)

不幸的是,我仍然在输出时收到空值:

    [{"name":"1.1 PREVIOS AL INICIO ","desc":null,"values":null},{"name":"F04-PGA-S10","desc":"Acta preconstrucción","values":null},{"name":"F37-PGA-S10","desc":"Plan de inversión del anticipo","values":null},{"name":"F09-PGA-S10","desc":"Acta de vecindad","values":null},{"name":"F05-PGA-S10","desc":"Acta de inicio","values":null},{"name":"F01-PGA-S10","desc":"Desembolso de anticipo","values":null}]
Run Code Online (Sandbox Code Playgroud)

我错过了什么或做错了什么?

asp.net-mvc json asp.net-mvc-4

8
推荐指数
1
解决办法
7678
查看次数

从对象中删除null属性

,我有一个类,其中我现在有三个属性我想做什么,如果在对象中,如果任何一个null或空,那么我想从下面的对象中删除它是我的代码.

public class TestClass
{
    public string Name { get; set; }
    public int ID { get; set; }
    public DateTime? DateTime { get; set; }
    public string Address { get; set; }
}
       TestClass t=new TestClass();
        t.Address="address";
        t.ID=132;
        t.Name=string.Empty;
        t.DateTime=null;
Run Code Online (Sandbox Code Playgroud)

现在我想要TestClass的对象,但是Name和DateTime属性不应该是它们在对象中,是否可能?请帮我

c# properties object

3
推荐指数
2
解决办法
2万
查看次数