如何接收JSON字符串?

时间:2013-06-18 09:17:25

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

我正在使用ASP.NET WEB API。

我想接收并添加到数据库jsonstring。

我的模特:

namespace sms.Models
{
    [JsonObject]
    public class MySMS
    {
        //[JsonProperty("id")]
        //public int Id { get; set; }
        [JsonProperty("name")]
        public string Name { get; set; }
        [JsonProperty("fromnumber")]
        public string FromNumber { get; set; }
        [JsonProperty("tonumber")]
        public string ToNumber { get; set; }
        [JsonProperty("text")]
        public string Text { get; set; }
    }
}

SMSController:

public void Post(JObject singleSMS)
{
    MySMS smska = singleSMS.ToObject<MySMS>();

    try
    {
        SMS_Repository.Add(smska);
    }
    catch (Exception)
    {
        throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotImplemented));
    }
}

来自存储库的方法:

public static void Add(MySMS singleSMS)
{
    DataClasses1DataContext db = new DataClasses1DataContext();
    SimpleSMS newSMS = new SimpleSMS();
    newSMS.Name = singleSMS.Name;
    newSMS.Text = singleSMS.Text;
    newSMS.FromNumber = singleSMS.FromNumber;
    newSMS.ToNumber = singleSMS.ToNumber;

    db.SimpleSMS.InsertOnSubmit(newSMS);
    db.SubmitChanges();

}

现在,如果我从Fiddler发送POST请求,如下所示:

本地主机:25856 / API / SMS

请求正文:

{"name":"name", "tonumber":"1", "fromnumber":"2", "text":"text"}

我在这里有空引用异常:

MySMS smska = singleSMS.ToObject<MySMS>();

smska是null

我的错误是什么?

1 个答案:

答案 0 :(得分:1)

尝试在您的Fiddler请求中设置Content-Type:application / json。