[英]Passing Json to the Web Service
我正在尝试将json数据推送到Web服务;
这是我的样本数据;
{
"data" : {
"username" : "demo",
"password" : "demo1082*098/*42a",
"LoginToken" : "AAFF540EC55DASEFBE7E3D8404AED31F6DD30CA2BFCE2433B9475E696GG38730"
}
}
这是我的网络服务;
public string Post([FromBody]string data)
List<Login> datas = JsonConvert.DeserializeObject<List<Login>>(data);
错误; Newtonsoft.Json.dll中发生类型为'System.ArgumentNullException'的异常,但未在用户代码中处理
数据显示为NULL
我正在使用WebAPI,restful api,C#,visual std 2015
提前致谢。
编辑;
我正在使用DHC chrome扩展来发布数据。 标题; 内容类型:application / json BODY;
{
"data" : {
"username" : "demo",
"password" : "demo1082*098/*42a",
"LoginToken" : "AAFF540EC55DASEFBE7E3D8404AED31F6DD30CA2BFCE2433B9475E696GG38730"
}
}
错误;
500内部服务器错误
编辑; 我发现错误是因为“字符串”类型的数据。 当我将其更改为“动态”时,我解决了该问题。 有人可以推荐我一个关键字而不是动态的吗?
1)您必须创建一个类
public class LoginData
{
public string username {get;set;}
public string password {get;set;}
public string LoginToken {get;set;}
}
并在您的网络服务中使用如下
public string Post([FromBody]LoginData data)
2)我看到以下行您已经创建了一个类名Login
(如果您在json中有一条记录)
Login datas = JsonConvert.DeserializeObject<Login>(data);
所以你也可以使用
public string Post([FromBody]Login data)
执行此操作的一种方法如下:
创建您的要求的课程
public class Data
{
public string username { get; set; }
public string password { get; set; }
public string LoginToken { get; set; }
}
public class RootObject
{
public Data data { get; set; }
}
和你的帖子方法
public string Post([FromBody]RootObject data)
现在,您甚至不必反序列化它。 并可以作为类的属性直接访问。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.