0

MVC-4 Web-APIサーバーで、名前にスペースを含むJson文字列を受け取ります。

{ "field name" : "some value" , "simpleName" : "some string" }

Modelクラスを定義しました。例:

public class SomeJsonModel
{
    [DataMember(Name = "field name")]
    public string FieldName { get; set; }

    public string SimpleName { get; set; }
}

SimpleNameこれで通過しますが(最初の文字の大文字と小文字の不一致にもかかわらず、これは良いことです)、にFieldNameなりnullます。

フィールド名にスペースが含まれているJsonを正常に受信するにはどうすればよいですか(事前定義済み-クライアントデータソースを変更できません)?

4

1 に答える 1

2

クラスに[DataContract]を追加してみてください。

[DataContract]
public class SomeJsonModel
{
    [DataMember(Name = "field name")]
    public string FieldName { get; set; }

    [DataMember]
    public string SimpleName { get; set; }
}

これについての詳細は次のとおりです。

  • MSDN:「DataMemberAttribute属性をDataContractAttributeと組み合わせて適用し、データコントラクトの一部であるタイプのメンバーを識別します。」
  • DataMemberのNameプロパティが無視されることに関連するJson.NETの問題。その解決策は、「DataContractをクラスに配置する」ことでした。
于 2012-10-18T16:20:47.893 に答える