繁体   English   中英

有条件地序列化对象成员

[英]Conditionally serialize object members

要将对象序列化为json,我们如下所示-

var json = new JavaScriptSerializer().Serialize(question);

然后返回给定的json数据:-

{"que_desc":"devQuestion","qtype":3,"number_of_answer":3,"answers":[{"answer":"answer1","Question":null},{"answer":"answer2","Question":null},{"answer":"answer3","Question":null}]}

但我想忽略“问题”属性,并需要以下数据-

{
"que_desc": "This is Question details",
"qtype" : "1",
"number_of_answer" : "3",
"answers": [{"answer": "A", "is_default": "true"}, {"answer": "B"}, {"answer": "C"}]}

我想在转换为json时忽略“问题”属性。 那么我们如何在运行时有条件地序列化对象成员呢?

您可以在que_desc属性中使用Json.NET nuget和[JsonIgnore]属性。

如果需要更多功能,则可以使用Json.NET自行实现反序列化方法。

更多信息

您可以使用[ScriptIgnore]属性装饰Question属性。

有关更多信息,请在这里查看

假设Answer具有如下定义:

public class Answer
{
    public string Answer { get; set; }

    public Question Question { get; set; }

    // rest
}

如果将其更改为以下内容:

public class Answer
{
    public string Answer { get; set; }

    [ScriptIgnore]
    public Question Question { get; set; }

    // rest 
}

您会得到想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM