我已经通过邮递员传递了Json对象。而且我不知道如何使用.NetCore 1.1 Web Service进行循环。
邮递员传递的Json对象:
{
[
{"id":"1","name":"Peter"}
,
{"id":"2","name":"Mary"}
]
}
.net core 1.1编码:
[HttpPut]
[Route("all")]
public IActionResult UpdateName([FromBody] dynamic JSON){
var RootObjects = JsonConvert.DeserializeObject<List<RootObject>>(JSON);
foreach (var x in RootObjects){
// do something here...
}
}
RootObjects:
private class RootObject
{
public string id { get; set; }
public string name { get; set; }
}
我在下面看到错误:
System.ArgumentNullException:值不能为null。\ r \ n参数名称:Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值,类型类型,JsonSerializerSettings设置)的值\ r \ n,Newtonsoft.Json的值。 JsonConvert.DeserializeObject [T](String value,JsonSerializerSettings settings)\ r \ n在CallSite.Target(Closure,CallSite,Type,Object)\ r \ n
答案 0 :(得分:1)
也许您的json无效。将json字符串更改为:
[
{"id":"1","name":"Peter"},
{"id":"2","name":"Mary"}
]
并将您的控制器操作更改为:
[HttpPut]
public IActionResult Test([FromBody] List<RootObject> list)
{
foreach (var item in list)
{
Console.WriteLine(item.name);
}
return Json("ok");
}
RootObject类也需要公开:
public class RootObject
{
public string id { get; set; }
public string name { get; set; }
}
在Content-Type:application / json中使用邮递员放置的字符串。而且我看到了正确的结果。