如何在asp.net web-api中使用间隔字段名称接收Json?

时间:2012-10-18 07:23:32

标签: json asp.net-web-api json.net

在我的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(预定义 - 我无法更改客户端数据源)?

1 个答案:

答案 0 :(得分:2)

尝试在您的课程中添加[DataContract]:

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

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

以下是有关此内容的更多信息:

  • on MSDN:" 将DataMemberAttribute属性与DataContractAttribute结合使用,以识别属于数据合同的类型的成员。"
  • 与DataMember的Name属性相关的Json.NET issue被忽略。对此的解决方法是在课堂上使用<#34; 放置DataContract。&#34;