2016-08-03 16 views
0

私が書いているAPI用のJSON文字列を渡そうとしています。ここではJSONのポストは次のようになります。C#クラスへのネストされたJSON配列

JSON2Csharpを使用して
{"AssociatedApplication":"Postman", "Key":"a274e012c52d4121bda7d1e7a7218cf5", "Subject":"Testing API", "Body":"Testing email API. Muffins.", 
"EmailAddresses":[ 
    {"From":"[email protected]"}, 
    {"To":"[email protected]"}, 
    {"To":"[email protected]"}, 
    {"Cc":"[email protected]"}, 
    {"Bcc":"[email protected]"} 
] 
} 

、私は

[NotMapped] 
class EmailTransmission 
{ 
    public string AssociatedApplication; 
    public string Key; 
    public string Subject; 
    public string Body; 
    public List<EmailAddress> EmailAddresses; 
} 

[NotMapped] 
public class EmailAddress 
{ 
    public string From { get; set; } 
    public string To { get; set; } 
    public string Cc { get; set; } 
    public string Bcc { get; set; } 
} 

私はJsonConvert.DeserializeObject<List<EmailAddress>>(email["EmailAddresses"])を使用する場合、それは動作しないと私はList<List<string>>リストを試してみましたが、そうてきたように私のクラスを設定しています。ランタイム型のバインダー例外を取得せずに使用するタイプは何ですか?

答えて

3

これが実際にコードであれば、フィールドではなくEmailTransmissionのプロパティを使用する必要があります。

次に、クラスEmailTransmissionを公開する必要があります。

最後に、オブジェクト全体をデシリアライズしてから、必要なものを取り出してください。

JsonConvert.DeserializeObject<EmailTransmission>(email); 

json文字列全体を逆シリアル化したら、電子メールアドレスを引き出すことができます。感謝 -

+0

belowsの通りごEmailTransmissionクラスを変更してください! – Dreamcasting

+0

@Dreamcastingは喜んでお手伝いします! –

0

それがあったことを

[NotMapped] 
class EmailTransmission 
{ 
    public string AssociatedApplication { get; set; } 
    public string Key { get; set; } 
    public string Subject { get; set; } 
    public string Body { get; set; } 
    public List<EmailAddress> EmailAddresses { get; set; } 
} 
関連する問題