簡體   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