2016-05-03 10 views
0

をシリアライズは条件付きで下記のよう私たちが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に変換する際に「質問」プロパティを無視します。 実行時にオブジェクトメンバーを条件付きで直列化する方法は?

+1

あなたは、プロパティが含まれ、その後、あなたはそれを修正するために、間違っているものを指摘することができれば –

答えて

0

[ScriptIgnore]属性を使用してQuestionプロパティを飾ることができます。

詳細については、hereをご覧ください。

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 
} 

あなたが望むことでしょう。

+0

@Downvoter私には理解されることをシリアライズしない匿名のオブジェクトを作成することができます。 – Christos

1

que_descプロパティでJson.NETナゲットと[JsonIgnore]アトリビュートを使用できます。

さらに機能が必要な場合は、Json.NETを使用して、自分自身でメソッドをシリアライズすることができます。

More Info

関連する問題